总体来说python内置数据类型是比较简单的,但是还是有些细节需要注意:
一. 字典
1. 字典是无序的,想要对它排序需要对key进行操作。
但是有一种方法可以对value排序,需要用到sorted()函数:
>>> dict={'a':1,'b':33,'c':35,'d':22}
>>> for k,v in sorted(dict.items(),key=lambda dict:dict[1]): # 先将dict转成tuples, 然后用dict的value作为关键字比较。
print "%s: %s" %(k,v) # 返回的还是string,想要转成dict需要用from collections import OrderedDict
a: 1
d: 22
b: 33
c: 35
2. 字典的key是不可改变的,所以只能有数字,字符串和不可改变的元组(比如数字元组,字符元组)作为key。
二.列表
1. 列表是有序的,但是不是集合,所以可以重复出现同一个元素
2. I[:] 将创造一个列表l的复制。
3. 列表的append函数可以添加任何数据到表中。
4. 用 in 可以检验列表中是否有某个元素。
5. l.remove()用于去除某个元素, I.pop()能显示去除列表最后的某个元素。
6. l.extend(['aa']) 比 l + [''aa"] 快速,因为列表+会生成一个新的列表。
7. join函数只用于list of strings,把字符列表转成字符串。
8. l.split() 函数将一个字符串分解成list of strings。 有一个可选参数,用来指定分解的次数。
>>> s
'server=mpilgrim;uid=sa;database=master;pwd=secret'
>>> s.split(";", 1)
['server=mpilgrim', 'uid=sa;database=master;pwd=secret']
三. 元组
1. 元组比列表快速,特别适用于需要历遍一组不变的数据时。
2. 元组适用于字符串格式化。
3. 可以一个元组只有一个值(a, )
print "Users connected: %d" % (userCount, )
4. 列表综合可以把list of tuples 转成 list of string
>>> l=['%s:%s'%(k,v) for (k,v) in dict.items()] # items()返回 list of tuples
>>> l
['ee:1', 'ww:2']
总结,书中大致讲了这些我认为会忽视的点,还是需要多多练习才能体会。