1 初始化
>>> d = dict(name='visaya', age=20)>>> d = dict(zip(['name', 'age'], ['visaya', 20]))#dict.fromkeys(listkeys, default=0) 把listkeys中的元素作为key均赋值为value,默认为0>>> d = dict.fromkeys(['a', 'b'], 1)>>> d{'a': 1, 'b': 1}
2 字典视图和几何
dict.keys()类似信使可以进行交集和并集等集合操作(类似集合,因为不存在重复的项),但dict.values()不可以进行如上操作。>>> k = d.keys()>>> kdict_keys(['a', 'b'])>>> list(k)['a', 'b']>>> k | {'x': 3}{'a', 'x', 'b'}>>> k | {'x'}{'a', 'x', 'b'}>>> k | {'x', 'y'}{'a', 'y', 'b', 'x'}>>> k & {'x'}set()>>> v = d.values()>>> vdict_values([1, 2])>>> v | {'x'}Traceback (most recent call last): File "", line 1, in TypeError: unsupported operand type(s) for |: 'dict_values' and 'set'
3 排序字典键
两种方法:
3.1 sort:
>>> Ks = list(d.keys())>>> Ks.sort()>>> for k in Ks:... print(k, d[k])... a 1b 2
3.2 sorted:
>>> for k in sorted(d.keys()):... print(k, d[k])... a 1b 2
3.3 注意
>>> for k in list(d.keys()).sort():... print(k, d[k])... Traceback (most recent call last): File "", line 1, in TypeError: 'NoneType' object is not iterable出错原因:list.sort() list.append()函数都是对自身的操作,没有返回值,故需先将list(d.keys())的结果保存下来,在结果上进行sort()
4 常用函数
4.1 get()
D.get(k[, d]) => D[k] if k in D else d. d defaults to none.
4.2 pop()
D.pop(value[, d]) => Remove specified key and return the corresponding value. If key is not found, d is returned if given, otherwise KeyError is raised.
4.3 udpate()
D.update(E, **F) -> None. Update D from dict/iterable E and F. If E has a .keys() method, does: for k in E: D[k] = E[k] If E lacks .keys() method, does: for (k, v) in E: D[k] = v In either case, this is followed by: for k in F: D[k] = F[k]>>> d = dict(name='visaya', age=21)>>> d1= {'age': 20, 'sex': 'male'}>>> d2 = zip(['a', 'b'], [1, 2])>>> d.update(d1)>>> d{'age': 20, 'name': 'visaya', 'sex': 'male'}#for k in d1: d[k] = d1[k]>>> d.update(d2)>>> d{'age': 20, 'name': 'visaya', 'sex': 'male'}#for (k, v) in d2: d[k] = v
4.4 del()
del D[key]
4.5 clear()
4.6 copy()
Date: 2011-08-03 22:32:26 CST
HTML generated by org-mode 6.33x in emacs 23