Dictionary
键与值通过冒号分隔,每个键值对元素通过逗号分隔,整个序列以大括号包括,称为Dictionary。空的Dictionary为{}。
Dictionary中键是唯一的,值不一定;值的类型可以是任意类型,但是键必须是不可变数据,如string,number或tuple。
获取Dictionary元素值
可以通过dictionary[key]获取,例子
dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}
print("dict['Name']: ", dict['Name'])
print("dict['Age']: ", dict['Age'])
执行结果
dict['Name']: Zara
dict['Age']: 7
更新Dictionary
可以通过加入新的值或键值对或改变原有的值、删除存在的值更新Dictionary
dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}
dict['Age'] = 8; # update existing entry
dict['School'] = "DPS School"; # Add new entry
print("dict['Age']: ", dict['Age'])
print("dict['School']: ", dict['School'])
执行结果
dict['Age']: 8
dict['School']: DPS School
删除Dictionary元素
可以删除单独的Dictionary元素或清除Dictionary整个内容。
dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}
del dict['Name']; # remove entry with key 'Name'
print("dict['Age']: ", dict['Age'])
dict.clear() # remove all entries in dict
del dict # delete entire dictionary
print("dict['School']: ", dict['School'])
执行del dict后,dictionary将不再存在
TypeError Traceback (most recent call last)
<ipython-input-23-a2396c4e923b> in <module>()
6
7
----> 8 print("dict['School']: ", dict['School'])
TypeError: 'type' object is not subscriptable
Dictionary键的属性
Dictionary的值没有限制,可以是任意Python对象,标准的对象或用户自定义的;但是key却不一样。
对于key有两点要注意
- 只能有一个输入值。意味着不允许重复的key。当遇到重复的key时,调用时采用最后一个key。
dict = {'Name': 'Zara', 'Age': 7, 'Name': 'Manni'}
print("dict['Name']: ", dict['Name'])
执行结果
dict['Name']: Manni
- key必须不能改变。意味着可以字符串、数字、tuple作为key,但是像[‘key’]是禁止的。
dict = {['Name']: 'Zara', 'Age': 7}
print("dict['Name']: ", dict['Name'])
执行结果显示list不能作为key
TypeError Traceback (most recent call last)
<ipython-input-25-6474d8eec85d> in <module>()
----> 1 dict = {['Name']: 'Zara', 'Age': 7}
2 print("dict['Name']: ", dict['Name'])
TypeError: unhashable type: 'list'
Dictionary的function和method可以参考
https://www.tutorialspoint.com/python/python_dictionary.htm