- 字典是无序的键值对的集合(key:value)
- 同一个字典内的键必须是互不相同的
- 一个大括号{}创建一个空字典
- 字典的键必须是不可变类型,比如你不能用列表作为键
dict()
可以从包含键值对的元组中创建字典
>>>dict((('I','D'),('B','C')))
{'I':'D','B':'C'}
- 如果想要遍历一个字典,使用字典的
items()
方法
>>>data={'K':'F','J':'M'}
>>>for x,y in data.items():
... print('{} uses {}'.format(x,y))
...
K uses F
J uses M
试图索引一个不存在的键将会抛出一个keyError错误。可以使用dict.get(key,default)来索引键,如果键不存在,那么返回指定的default值
>>>data.get('K',0)
'F'
>>>data.get('L',0)
0
enumerate()
函数
enumerate()
函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用于for循环中。返回enumerate(枚举)对象
>>>seasons = ['Spring', 'Summer', 'Fall', 'Winter']
>>> list(enumerate(seasons))
[(0, 'Spring'), (1, 'Summer'), (2, 'Fall'), (3, 'Winter')]
>>> list(enumerate(seasons, start=1)) # 小标从 1 开始
[(1, 'Spring'), (2, 'Summer'), (3, 'Fall'), (4, 'Winter')]
普通的for循环
>>>i = 0
>>> seq = ['one', 'two', 'three']
>>> for element in seq:
... print i, seq[i]
... i +=1
...
0 one
1 two
2 three
在for循环中使用enumerate
>>>seq = ['one', 'two', 'three']
>>> for i, element in enumerate(seq):
... print i, element
...
0 one
1 two
2 three
字典的特性:
字典值可以没有限制地取任何python对象,既可以是标准的对象,也可以是用户定义的,但键不行。
1、不允许同一个键出现两次,创建时如果同一个键被赋值两次,后一个值会被记住。
>>>dict = {'Name': 'Zara', 'Age': 7, 'Name': 'Manni'}
>>>dict['Name']
Manni
2、键必须不可变,可以用数字,字符串或元组充当,但是用列表就不行
>>>dict = {['Name']: 'Zara', 'Age': 7}
Traceback (most recent call last):
File "test.py", line 3, in <module>
dict = {['Name']: 'Zara', 'Age': 7};
TypeError: list objects are unhashable
字典的内置函数
1、len(dict)
计算字典元素的个数,即键的总数
2、str(dict)
输出字典可打印的字符串表示
3、type(dict)
返回输入的变量类型,如果变量是字典就返回字典类型
字典的内置方法
1、dict.clear()
清空字典,操作后字典为空字典
2、dict.copy()
返回一个字典的浅拷贝
3、dict.keys()
以列表形式返回一个字典的所有键
4、dict.values()
以列表形式返回字典中的所有值