字典是key-value键值对的数据的集合
可变的,无序的,key不重复
</li>
<li>
字典的key要求和set集合的要求一致,可哈希才可以作为key
</li>
```
d = dict(((1,‘a’),(2,‘b’))) d {1: ‘a’, 2: ‘b’}
d2 = dict(([1,‘a’],[2,‘b’])) d2 {1: ‘a’, 2: ‘b’}
#直接使用{}去构造 d3 = {‘a’: 1,‘b’: 2,‘c’: 3} d3 {‘a’: 1, ‘b’: 2, ‘c’: 3}
#类方法 dict.fromkeys(iterable,value) d4 = dict.fromkeys(range(5)) d4 {0: None, 1: None, 2: None, 3: None, 4: None}
d5 = dict.fromkeys([‘a’,‘b’,1,2,3]) d5 {‘a’: None, ‘b’: None, 1: None, 2: None, 3: None}
d6 = dict.fromkeys(range(5),‘python’) d6 {0: ‘python’, 1: ‘python’, 2: ‘python’, 3: ‘python’, 4: ‘python’}
<h2>
字典元素的访问
</h2>
d[key]
<ul>
<li>
返回key对应的值value
</li>
<li>
key不存在抛出KeyError异常
</li>
</ul>
```
d = {1: 'a', 2: 'b'}
d[1]
'a'
get(key,default)
d = {1: 'a', 2: 'b'}
d.get(1)
'a'
d[key] = value
d
{1: 'a', 2: 'b'}
d[3] = 'c'
d
{1: 'a', 2: 'b', 3: 'c'}
d[2] = 'python'
d
{1: 'a', 2: 'python', 3: 'c'}
update([other])
d.update(red=1)
d
{1: 'a', 2: 'python', 3: 'c', 'red': 1}
d.update({'red': 2})
d
{1: 'a', 2: 'python', 3: 'c', 'red': 2}
d.update((('red',3),))
d
{1: 'a', 2: 'python', 3: 'c', 'red': 3}
d6
{0: 'python', 1: 'python', 2: 'python', 3: 'python', 4: 'python'}
d.update(d6)
d
{1: 'python', 2: 'python', 3: 'python', 'red': 3, 0: 'python', 4: 'python'}
pop(key,default)
d.pop(5)
'a'
d.pop(6,'not exist')
'not exist'
popitem()
d.popitem()
(0, 'python')
d.popitem()
---------------------------------------------------------------------------
KeyError Traceback (most recent call last)
<ipython-input-76-83c64cff336b> in <module>()
----> 1 d.popitem()
KeyError: 'popitem(): dictionary is empty'
clear()
del语句
d = {'a': 1,'b': b,'c': [1,3,5]}
del d['a']
d
{'b': [], 'c': [1, 3, 5]}
1)遍历key
for k in d:
print(k)
或
for k in d.keys():
print(k)
2)遍历value
for k in d:
print(d[k])
或
for k in d.keys():
print(d.get(k))
或
for v in d.values():
print(v)
或
for _,v in d.items():
print(v)
collections.defaultdict([default_factory,….])
collections.OrderedDict([items])