字典一种key - value 的数据类型
语法:关键字不能重复
info = {
'stu110': "DeFu Li",
'stu111': "KaiDi Lu",
'stu112': "XiXi Ma"
}
info["stu113"] = "Mu Xiong"#新增 {'stu110': 'DeFu Li', 'stu111': 'KaiDi Lu', 'stu112': 'XiXi Ma', 'stu113': 'Mu Xiong'}
info["stu110"] = "HaoHu Li"#修改 {'stu110': 'HaoHu Li', 'stu111': 'KaiDi Lu', 'stu112': 'XiXi Ma', 'stu113': 'Mu Xiong'}
#del info["stu110"]#删除方式1 {'stu111': 'KaiDi Lu', 'stu112': 'XiXi Ma', 'stu113': 'Mu Xiong'}
#info.pop("stu110")#删除方式2 {'stu111': 'KaiDi Lu', 'stu112': 'XiXi Ma', 'stu113': 'Mu Xiong'}
#info.popitem()#删除方式3,随机删除{'stu110': 'HaoHu Li', 'stu111': 'KaiDi Lu', 'stu112': 'XiXi Ma'}
#print(info)
#print(info["stu110"])#HaoHu Li
info1 = {
'stu110': "DeFu Li",
'stu111': "KaiDi Lu",
'stu112': "XiXi Ma",
'stu115':{'x1':"Ha Ha",'x2':"Hei Ha"}
}
print(info1['stu115']['x1'])#Ha Ha 字典多层嵌套
print(info.values())#dict_values(['HaoHu Li', 'KaiDi Lu', 'XiXi Ma', 'Mu Xiong'])
print(info.keys())#dict_keys(['stu110', 'stu111', 'stu112', 'stu113'])
dict.setdefault(key,[default])
如果键在字典中,返回这个键所对应的值。如果键不在字典中,向字典 中插入这个键,并且以default为这个键的值,并返回 default。default的默认值为None
info2 = {
'stu110': "DeFu Li",
'stu111': "KaiDi Lu",
'stu112': "XiXi Ma"
}
#info2.setdefault('stu113',"KeKe Liu")
#print(info2)#{'stu110': 'DeFu Li', 'stu111': 'KaiDi Lu', 'stu112': 'XiXi Ma', 'stu113': 'KeKe Liu'}
info2.setdefault('stu110',"DF li")
print(info2)#{'stu110': 'DeFu Li', 'stu111': 'KaiDi Lu', 'stu112': 'XiXi Ma'}
update一个字典项更新另外一个字典,如果关键字存在,更新值,如果关键字不存在,新增关键字及对应值
a = {'b': 'AA', 'n': 1111}
b = {'b':'cc'}
#a.update(b)#{'b': 'cc', 'n': 1111}
c = {'c':'dd'}
a.update(c)
print(a)#{'b': 'AA', 'n': 1111, 'c': 'dd'}
ss = {'b': 'AA', 'n': 1111}
print(ss.items())#dict_items([('b', 'AA'), ('n', 1111)])
python中字典的循环遍历的两种方式
1. 只对键的遍历
一个简单的for语句就能循环字典的所有键,就像处理序列一样:
ss = {
'stu110': "DeFu Li",
'stu111': "KaiDi Lu",
'stu112': "XiXi Ma"
}
for key in ss:
print(key,'value:',ss[key])
# stu110 value: DeFu Li
# stu111 value: KaiDi Lu
# stu112 value: XiXi Ma
2. 对键和值都进行遍历
如果只需要值,可以使用d.values,如果想获取所有的键则可以使用d.keys。
如果想获取键和值d.items方法会将键-值对作为元组返回,for循环的一大好处就是可以循环中使用序列解包
ss = {
'stu110': "DeFu Li",
'stu111': "KaiDi Lu",
'stu112': "XiXi Ma"
}
for key,value in ss.items():
print(key,'value:',value)
# stu110 value: DeFu Li
# stu111 value: KaiDi Lu
# stu112 value: XiXi Ma