一、什么是字典
字典是一种可变容器模型,且可存储任意类型对象。字典的每个键值对(key->value)用冒号“:”分割,每个键值对之间用逗号“,”分割,整个字典包括在花括号“{}”中
注意:键必须使用不可变类型即整形、字符串、元组
二、字典的基本操作
1.增加
1 dic = {'name':'tom'} 2 dic['age'] = 18 3 print(dic)
>>> {'name': 'tom', 'age': 18}
2.修改
1 dic = {'name':'tom'} 2 dic['name'] = 18 3 print(dic)
>>> {'name': 18}
3. .setdefault() 操作
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.输出字典的键
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() )
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.删除键值对
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.清空和删除整个字典
1 dic = {'name':'tom', 'age':'12', 'hobby':'小可爱'} 2 dic.clear() #清空字典 3 print(dic) 4 5 del dic # 删除整个字典
输出结果: {}
8.字典的嵌套
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.字典的遍历
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 小可爱
1 dic = {'name':'tom', 'age':'12', 'hobby':'小可爱'} 2 3 for n,m in dic.items(): #用两个变量分别接收键和键值 4 print(n, m)
输出结果:name tom
age 12
hobby 小可爱
1 a = eval(a) #转换成字典类型