一、什么是字典
字典是一种可变容器模型,且可存储任意类型对象。字典的每个键值对(key->value)用冒号“:”分割,每个键值对之间用逗号“,”分割,整个字典包括在花括号“{}”中
注意:键必须使用不可变类型即整形、字符串、元组
二、字典的基本操作
1.增加
代码语言:javascript复制1 dic = {'name':'tom'}
2 dic['age'] = 18
3 print(dic)
>>> {'name': 'tom', 'age': 18}
2.修改
代码语言:javascript复制1 dic = {'name':'tom'}
2 dic['name'] = 18
3 print(dic)
>>> {'name': 18}
3. .setdefault() 操作
代码语言:javascript复制1 dic = {'name':'tom'}
2 dic['age'] = 18
3 print(dic)
4
5 # 键存在则不进行操作,并把原有的值作为返回值;键不存在,则增加
6 dic.setdefault('age', '34')
7
8 print(dic)
>>> {'name': 'tom', 'age': 18}
{'name': 'tom', 'age': 18}
4.输出字典的键
代码语言:javascript复制1 dic = {'name':'tom', 'age':'22', 'hobby':'ss'}
2 print(dic.keys()) #输出字典的键
3 print(list(dic.keys())) #以列表的形式输出字典的键
4 print(list(dic.values())) #以列表形式输出字典键所对应的值
输出:dict_keys(['name', 'age', 'hobby'])
['name', 'age', 'hobby']
['tom', '22', 'ss']
5.字典的更新( .update() )
代码语言:javascript复制1 dic1 = {'name':'tom', 'age':'22', 'hobby':'ss'}
2 dic2 = {'name':'tom', 'age':'12', 'hobby':'小可爱'}
3 print(dic1)
4 dic1.update(dic2) #把dic2的内容更新到dic1中
5 print(dic1)
输出: {'name': 'tom', 'age': '22', 'hobby': 'ss'}
{'name': 'tom', 'age': '12', 'hobby': '小可爱'}
6.删除键值对
代码语言:javascript复制 1 dic1 = {'name':'tom', 'age':'12', 'hobby':'小可爱'}
2 dic2 = {'name':'tom', 'age':'12', 'hobby':'小可爱'}
3 del dic1['name'] #删除指定键值对
4 print(dic1)
5
6 ret = dic1.pop('age') #删除指定键值对,并返回键值所对应的值
7 print(ret)
8 print(dic1)
9
10 a = dic2.popitem() #随机删除某个键值对,并以元组方式返回
11 print(a,dic2)
输出: {'age': '12', 'hobby': '小可爱'}
12
{'hobby': '小可爱'}
('hobby', '小可爱') {'name': 'tom', 'age': '12'}
7.清空和删除整个字典
代码语言:javascript复制1 dic = {'name':'tom', 'age':'12', 'hobby':'小可爱'}
2 dic.clear() #清空字典
3 print(dic)
4
5 del dic # 删除整个字典
输出结果: {}
8.字典的嵌套
代码语言:javascript复制 1 dic_nate = {
2 "欧美":{
3 "www.123.com":["质量一般","免费"],
4 "www.234.com":["质量一般","高清"],
5 "www.345.com":["质量优","收费,屌丝绕路"]
6 },
7 "日韩":{
8 "www.456.com":["质量优","免费"]
9 },
10 "大陆":{
11 "www.567.com":["质量差","网速慢"]
12 }
13 }
14
15 dic_nate['欧美']["www.234.com"][1] = '垃圾' # 修改键值
16 print(dic_nate)
输出结果:
{'欧美': { 'www.123.com': ['质量一般', '免费'],
'www.234.com': ['质量一般', '垃圾'],
'www.345.com': ['质量优', '收费,屌丝绕路']},
'日韩': {'www.456.com': ['质量优', '免费']},
'大陆': {'www.567.com': ['质量差', '网速慢']}}
9.字典的遍历
代码语言:javascript复制1 dic = {'name':'tom', 'age':'12', 'hobby':'小可爱'}
2
3 for n in dic:
4 print(n) #输出键
5 print(n, dic[n]) #输出键和键值
输出:name
name tom
age
age 12
hobby
hobby 小可爱
代码语言:javascript复制1 dic = {'name':'tom', 'age':'12', 'hobby':'小可爱'}
2
3 for n,m in dic.items(): #用两个变量分别接收键和键值
4 print(n, m)
输出结果:name tom
age 12
hobby 小可爱
代码语言:javascript复制1 a = eval(a) #转换成字典类型
代码语言:javascript复制