哈希映射或者相连数组
{key:value, key:value}
keys
和values
方法分别用于获取键和值的列表。++虽然键值对没有特定的顺序,但这两个函数会以相同的顺序输出键和值。++
从序列类型创建字典
mapping = {}
for key, value in zip(key_list, value_list):
mapping[key] = value
dict类型函数直接处理二元元组列表:
mapping = dict(zip(range(5), reversed(range(5))))
字典推导式
mapping = dict((val, idx) for idx, val in enumerate(strings))
默认值
if key in some_dict:
value = some_dict[key]
else:
value = default_value
用dict的get方法:
value = some_dict.get(key, default_value)
根据首字母对一组单词进行分类并最终产生一个由列表组成的字典:
words = ['apple', 'banana', 'cat', 'dog']
by_letter = {}
for word in words:
letter = word[0]
if letter not in by_letter:
by_letter[letter] = [word]
else:
by_letter[letter].append(word)
用dict的setdefault方法:
by_letter.setdefault(letter, []).append(word)
内置的collections
模块的defaultdict
类(传入一个类型或函数,用于生成字典各插槽所使用的默认值)
from collections import defaultdict
by_letter = default(list)
for word in words:
by_letter[word[0]].append(word)
如果想将默认值设置为0,只需传入一个能够返回0的函数:
counts = defaultdict(lambda: 0)
映射类型内建方法
dict.clear()
dict.fromkeys(seq, val=None)
dict.get(key, default=Noen)
dict.has_key(key)
dict.items()
**dict.keys()
**dict.iter()
**dict.pop(key[,default])
:删除指定值之后将其返回。dict.setdefault(key,defaut=None)
dict.update(dict2)
:将字典2合并到字典1中去。dict.values()
**
Help on built-in function items: (Python2)
items(...)
D.items() -> list of D's (key, value) pairs, as 2-tuples
iteritems(...)
D.iteritems() -> an iterator over the (key, value) items of D
字典的键
- 不允许一个键对应多个值
- 键必须是可哈希的
《Python核心编程》
《Python for Data Analysis》