15、python学习手册之:列表和字典
1、列表属于可变序列,支持在原处的修改
2、在标准python解锁器内部,列表就是C数组而不是链接结构
3、内置函数map对序列中的各项应用一个函数并把结果收集到一个新的列表中
eg:list(map(abs,[-1,-2,0,1,2])) -> [1,2,0,1,2]
4、对列表进行索引的结果就是你指定的偏移处的对象,而对列表进行分片往往返回一个新的列表
1、D={‘spam’:2,‘ham’:1,‘eggs’:3} list(D.values()) --> [3,1,2] list(D.items())-->[('eggs',3),('ham',1),('spam',2)]
2、D={‘spam’:2,‘ham’:1,‘eggs’:3} D2={‘toast’:4,‘muffin’:5} D.update(D2) -->{‘spam’:2,‘ham’:1,‘eggs’:3,‘toast’:4,‘muffin’:5}
3、字典的键可以是元组等数据结构
4、三种方法解决读取不存在的键的错误:if key in dict;try dict[key] except KeyError: ; dict.get(key,defaultvalue)
5、初始化dict.fromkeys(['a','b'],0) --> {'a':0,‘b’:0}
6、list(zip(['a','b','c'],[1,2,3])) -->[('a',1),('b',2),('c',3)]
7、在python3.0中字典的keys,values和items都返回视图对象,而在python2.6中,它们返回实际的结果列表,视图对象是可迭代的,这就意味着对象每次产生一个结果项,而不是在内存中立即产生结果列表。视图对象通过list()得到列表
8、字典keys、items方法返回的视图对象类似于集合,可以进行|或者&等操作,但是values不行,因为前者的结果是唯一的,而values的结果不唯一:eg:D={‘a’:1,‘b’:2},C={‘c’,3} D.keys() | C.keys() ---> {'a','b','c'}