上一次说完列表,这一次说下字典(dict)。
字典的格式前面两篇文章都有提到,就是用{}括起来的与键(key)相对应的值对(value),就像是词典中每一个字对应一个注释。具体格式如下:
#数字#
>>> {1:99,2:98,3:97,4:96,5:95,6:94,7:93,8:92,9:91}
{1: 99, 2: 98, 3: 97, 4: 96, 5: 95, 6: 94, 7: 93, 8: 92, 9: 91}
#字符串#
{'1':'99','2':'98','3':'97','4':'96','5':'95','6':'94','7':'93','8':'92','9':'91'}
{'1': '99', '2': '98', '3': '97', '4': '96', '5': '95', '6': '94', '7': '93', '8': '92', '9': '91'}
字典和集合一样是无序的。字典只能通过key来访问value,而如果一个字典里有多个重复的key,那么字典会默认保存最后一个value值。如下:
>>> {1:99,1:98,1:97,4:96,5:95,6:94,7:93,8:92,9:91}
{1: 97, 4: 96, 5: 95, 6: 94, 7: 93, 8: 92, 9: 91}
而如果一个是字符串的1一个是数字的1,字典也不会把他们认为是同一个key。
>>> {1:99,'1':98,3:97,4:96,5:95,6:94,7:93,8:92,9:91}[1]
99
>>> {1:99,'1':98,3:97,4:96,5:95,6:94,7:93,8:92,9:91}['1']
98
字典的值对(value)可以是python中的所有数据类型,比如列表、字典、元组、集合、字符等等。
#在字典中嵌套字典#
>>> {1:{1:2},3:97,4:96,5:95,6:94,7:93,8:92,9:91}
{1: {1: 2}, 3: 97, 4: 96, 5: 95, 6: 94, 7: 93, 8: 92, 9: 91}
#在字典中嵌套集合#
>>> {1:{1,2,3},3:97,4:96,5:95,6:94,7:93,8:92,9:91}
{1: {1, 2, 3}, 3: 97, 4: 96, 5: 95, 6: 94, 7: 93, 8: 92, 9: 91}
#在字典中嵌套列表#
>>> {1:[1,2,3],3:97,4:96,5:95,6:94,7:93,8:92,9:91}
{1: [1, 2, 3], 3: 97, 4: 96, 5: 95, 6: 94, 7: 93, 8: 92, 9: 91}
#在字典中嵌套元组#
>>> {1:(1,2,3),3:97,4:96,5:95,6:94,7:93,8:92,9:91}
{1: (1, 2, 3), 3: 97, 4: 96, 5: 95, 6: 94, 7: 93, 8: 92, 9: 91}
而字典的键(key)则必须是python中不可变的数据类型,比如str、int、tuple(tuple的特点就是数据类型是无法更改的)等等。
>>> {1:98,3:97,4:96,5:95,6:94,7:93,8:92,9:91}
{1: 98, 3: 97, 4: 96, 5: 95, 6: 94, 7: 93, 8: 92, 9: 91}
>>> {'1':98,3:97,4:96,5:95,6:94,7:93,8:92,9:91}
{'1': 98, 3: 97, 4: 96, 5: 95, 6: 94, 7: 93, 8: 92, 9: 91}
>>> {(1,2,3):98,3:97,4:96,5:95,6:94,7:93,8:92,9:91}
{(1, 2, 3): 98, 3: 97, 4: 96, 5: 95, 6: 94, 7: 93, 8: 92, 9: 91}
字典也是和列表一样可以进行查增删改。
访问/读取直接输入key即可。
#这里的[1]不是指数字1,而是字典中的key[1]#
>>> {1:98,3:97,4:96,5:95,6:94,7:93,8:92,9:91}[1]
98
增加数据不像列表一样,字典不能使用+,而是需要通过变量跳转。
>>> first = {1:98,3:97,4:96,5:95,6:94,7:93,}
>>> first[8] = 92
>>> print (first)
{1: 98, 3: 97, 4: 96, 5: 95, 6: 94, 7: 93, 8: 92}
修改则和增加差不多。
>>> first = {1:98,3:97,4:96,5:95,6:94,7:93,}
>>> first[7] = 92
>>> print (first)
{1: 98, 3: 97, 4: 96, 5: 95, 6: 94, 7: 92}
至于删除则是使用del语句。
#del删除的值永远消失了#
>>> first = {1:98,3:97,4:96,5:95,6:94,7:93,}
>>> del first[7]
>>> print (first)
{1: 98, 3: 97, 4: 96, 5: 95, 6: 94}
关于定义空字典,则是直接使用空的{}即可。
>>> type({})
<class 'dict'>
最后,关于字典还有一个特性,就是可以换行写代码,不用加任何的转义字符,只需要在,后面按回车便会自动缩进(只有有缩进才有效)。
>>> {1:98,
3:97,
4:96,
5:95,
6:94,
7:93}
{1: 98, 3: 97, 4: 96, 5: 95, 6: 94, 7: 93}