Python字符串/元祖/列表/字典互转介绍

 

#-*- coding:UTF-8 -*-

#author:RXS002

#1.字典

dict = {'name':'Zara','age':7,'class':'First'}

#字典转换为字符串,返回:<type 'str'> {'age':7,'name':'Zara','class':'First'}

print (type(str(dict)),str(dict))

#字典可以转为元祖,返回:('age','name','class')

print (tuple(dict)

#字典可以转为元祖,返回(7,'Zara','First')

print tuple(dict.values())

#字典转为列表,返回:['age','name','class']

print list(dict)

#字典转为列表

print (dict.values)

#2.元祖

tup = (1,2,3,4,5)

#元祖转为字符串,返回:(1,2,3,4,5)

print (tup.__str__())

#元祖转为列表,返回:[1,2,3,4,5]

print (list(tup))

#元祖不可以转为字典

#3.列表
nums = [1,3,5,7,8,13,20];
#列表转为字符串,返回:[1,3,5,7,8,13,20]
print(str(nums))
#列表转为元祖,返回:(1,3,5,7,8,13,20)
print(tuple(nums))
#列表不能转为字典

#4.字符串
#字符串转为元祖,返回:(1,2,3)
print(tuple(eval('1,2,3')))
#字符串转为列表,返回:[1,2,3]
print (list(eval('1,2,3')))
#字符串转为字典,返回:<type 'dict'>
print (type(eval("{'name':'srx','age':'41'}")))

补充:

python的基础数据结构有:列表(list), 元祖(tuple), 字典(dict), 字符串(string), 集合(set)

1)列表(list)

#1)创建
list = ['1',(1,2),'1', '2']
#2) 得到list 长度
>>> print len(list)
4
#3) 删除
>>> del list[0]
>>> print list
[(1, 2), '1', '2']
>>> del list[0:2]
>>> print list
['2']

#4) 添加
>>> list.append('3')
>>> print list
['2', '3']

#5) 插入
>>> list[0:0] = ['sample value']
>>> print list
['sample value', '2', '3']
>>> list[0:0] = ['sample value', 'sample value 1']
>>> print list
['sample value', 'sample value 1', 'sample value', '2', '3']
>>> list[1:2] = ['sample value 2', 'sample value 3']
>>> print list
['sample value', 'sample value 2', 'sample value 3', 'sample value', '2', '3']

#6) 取值,遍历
取值单个值
>>> print list[0]
sample value
>>> print list[1]
sample value 2
>>> print list[2]
sample value 3

取片段
>>> print list[2:4]
['sample value 3', 'sample value']

遍历
>>> for line in list:
...     print line
...
sample value
sample value 2
sample value 3
sample value
2
3

list的方法
L.append(var)   #追加元素
L.insert(index,var)
L.pop(var)      #返回最后一个元素,并从list中删除之
L.remove(var)   #删除第一次出现的该元素
L.count(var)    #该元素在列表中出现的个数
L.index(var)    #该元素的位置,无则抛异常
L.extend(list)  #追加list,即合并list到L上
L.sort()        #排序
L.reverse()     #倒序

2)元祖(tuple)

#元组和列表十分类似,只不过元组和字符串一样是
#不可变的 即你不能修改元组
tuple = ('a', 'b', 'c', 'd', 'e')
>>> print tuple[0]
a
>>> print tuple[0:2]
('a', 'b')
3)字符串(string)

string = "Hello My friend"
>>> print string[0]
H
>>> print string[0:5]
Hello

字符串包含判断操作符:in,not in
>>> print 'He' in string
True
>>> print 'sHe' in string
False

*后面跟数字表示字符串重复的次数,比如
print 'hello'*5
>>> hellohellohellohellohello

string模块,还提供了很多方法,如
S.find(substring, [start [,end]]) #可指范围查找子串,返回索引值,否则返回-1
S.rfind(substring,[start [,end]]) #反向查找
S.index(substring,[start [,end]]) #同find,只是找不到产生ValueError异常
S.rindex(substring,[start [,end]])#同上反向查找
S.count(substring,[start [,end]]) #返回找到子串的个数

S.lowercase()
S.capitalize()      #首字母大写
S.lower()           #转小写
S.upper()           #转大写
S.swapcase()        #大小写互换

S.split(str, ' ')   #将string转list,以空格切分
S.join(list, ' ')   #将list转string,以空格连接

处理字符串的内置函数
len(str)                #串长度
cmp("my friend", str)   #字符串比较。第一个大,返回1
max('abcxyz')           #寻找字符串中最大的字符
min('abcxyz')           #寻找字符串中最小的字符

string的转换
           
float(str) #变成浮点数,float("1e-1")  结果为0.1
int(str)        #变成整型,  int("12")  结果为12
int(str,base)   #变成base进制整型数,int("11",2) 结果为2
long(str)       #变成长整型,
long(str,base)  #变成base进制长整型,

字符串的格式化(注意其转义字符,大多如C语言的,略)
str_format % (参数列表) ?#参数列表是以tuple的形式定义的,即不可运行中改变
>>>print ""%s's height is %dcm" % ("My brother", 180)
#结果显示为 My brother's height is 180cm
4)字典(dict)

key-value的数据结构,跟c++中的stl:map类似。

#创建字典:
#1)基本
d = {} #空字典
d = {'name':'tom', 'age':22}
   #等价
d = {}
d['name'] = 'tom'
d['age'] = 22
2)dict
d = dict() #空
d = dict(name='tom', age=22)

d = dict([('name','tom'), ('age',22)])
  #等价
keys = ['name','age']
values = ['tom', 22]
d = dict(zip(keys,values))

#3) fromkeys
>>> dict.fromkeys(['name','age'],'default_value')
{'age': 'default_value', 'name': 'default_value'}

#判断key是否存在
if k in d:   #k not in
    dosomething()

#读取
print d['name'] #存在得到结果,但是若键不存在,将引发异常KeyError。慎用,建议不使用
print d.get('name', 'jack') #存在得到,若键不存在,返回第二个参数default_value.若是没有设default_value返回None

  #使用用例
if k in d:
    print d[k]

try:
    print d[k]
except KeyError:
    dosomething()

print d.get(k, default)
#等价 d[k] if k in d else default

#遍历
for key in d:
    print key, d[key]
    #等价 for key in d.keys()

for key,value in d.items():
    print key, value

#修改
d['name'] = 'tom'

d.update({'name':'tom'})  #这里支持一整组值
d.update( [ ('name','tom'), ('age',2) ] ) #每个元组两个元素,(key,value)
d.update('name'='tom', 'age'=4)

#删除
del d['key']
value = d.pop('key') #删除并返回值
d.clear() #清空

#排序
d = {'a':10, 'c':8, 'b':9, 'd':7}
#1)字典排序 按照key排序
keys = d.keys()
keys.sort()
for key in keys:
    print d.get(key)
结果为:
10
9
8
7

#2) 按照value进行排序
sorted(d.items(), lambda x,y: cmp(x[1],y[1]))
结果为:
[('d', 7), ('c', 8), ('b', 9), ('a', 10)]

#3) 另一种排序方法
sorted(d)
>>> print d
{'a': 10, 'c': 8, 'b': 9, 'd': 7}

时间: 2024-10-18 07:36:01

Python字符串/元祖/列表/字典互转介绍的相关文章

浅析Python中元祖、列表和字典的区别_python

1.列表(list) list是处理一组有序项目的数据结构,即你可以在一个列表中存储一个序列的项目. 列表中的项目应该包括在方括号中,这样Python就知道你是指明一个列表.一旦你创建了一个列表,就可以添加.删除,或者是搜索列表中的项目.由于你可以增加或者删除项目,我们说列表是可变的数据类型,即这种类型是可以被改变的,且列表是可以嵌套的. 实例: #coding=UTF-8 #author:RXS002 animalslist = ['fox','tiger','rabbit','snake']

详解Python中列表和元祖的使用方法_python

list Python内置的一种数据类型是列表:list.list是一种有序的集合,可以随时添加和删除其中的元素. 比如,列出班里所有同学的名字,就可以用一个list表示: >>> classmates = ['Michael', 'Bob', 'Tracy'] >>> classmates ['Michael', 'Bob', 'Tracy'] 变量classmates就是一个list.用len()函数可以获得list元素的个数: >>> len(c

python实现将元祖转换成数组的方法

  这篇文章主要介绍了python实现将元祖转换成数组的方法,涉及Python中list方法的使用技巧,需要的朋友可以参考下 本文实例讲述了python实现将元祖转换成数组的方法.分享给大家供大家参考.具体分析如下: python的元祖使用一对小括号表示的,元素是固定的,如果希望添加新的元素,可以先将元祖转换成数组列表,再进行操作 ? 1 2 3 colour_tuple = ("Red","Green","Blue") colour_list

python通过apply使用元祖和列表调用函数实例

  本文实例讲述了python通过apply使用元祖和列表调用函数的方法.分享给大家供大家参考.具体实现方法如下: ? 1 2 3 4 5 6 def my_fuc(a, b): print a, b atuple=(30,10) alist= ['Hello','World!'] apply(my_fuc,atuple) apply(my_fuc,alist) 运行结果如下: ? 1 2 30 10 Hello World! 希望本文所述对大家的Python程序设计有所帮助.

全面了解python字符串和字典_python

很多序列的方法字符串同样适用, 但是,字符串是不可变的,所以一些试图改变字符串的方法是不可用的 1 字符串格式化 1)用元组或者字典格式化字符串 format = "hello,%s.s% enough for you?" values = ('world','Hot') format % values 跟C格式化类似 2)模板字符串 string模块提供了模板字符串来格式化字符串 from string import Template s = Template(x,gloriousx

Python基础 6 ---- Python 元组+列表+字典+文件

本文转载自点击打开链接      Python的元组.列表.字典数据类型是Python内置的数据结构.这些结构都是经过足够优化后的,所以如果使用好的话,在某些地方将会有很大的益处. 1元组      个人认为就像C++的数组,Python中的元组有以下特性 任意对象的有序集合,这条没啥说的,数组的同性 通过偏移读取 一旦生成,不可改变 固定长度,支持嵌套     代码: >>> (0, 'haha', (4j, 'y')) (0, 'haha', (4j, 'y')) >>&

Python字符串(Str)详解

字符串是 Python 中最常用的数据类型.我们可以使用引号('或")来创建字符串. 创建字符串很简单,只要为变量分配一个值即可 字符串的格式 b = "hello itcast.cn" # 或者 b = 'hello itcast.cn' 双引号或者单引号中的数据,就是字符串 字符串连接的方法 直接通过加号(+)操作符连接 a = "str1" b = "str2" c = a + b print("a:%s" %

Python-列表和元祖

Python-列表和元祖 首先,大家如果看到有什么不懂的地方,欢迎吐槽!!! 我会在当天或者第二天及时回复,并且改进~~ 在Python中,最基本的数据结构是序列, 序列包含: 列表 元祖 其他的内建序列类型有: 字符串 Unicode字符串 buffer对象 xrange对象 一.通用序列操作 所有的序列类型都可以进行某些特定的操作.这些操作包括:索引.分片.加.乘及检查某个元素是否属于序列的成员. 1.1 索引 >>> name = 'hongxue' >>> na

Python字符串中查找子串小技巧_python

惭愧啊,今天写了个查找子串的Python程序被BS了- 如果让你写一个程序检查字符串s2中是不是包含有s1.也许你会很直观的写下下面的代码: 复制代码 代码如下: #determine whether s1 is a substring of s2 def isSubstring1(s1,s2):     tag = False     len1 = len(s1)     len2 = len(s2)     for i in range(0,len2):         if s2[i] =