字典dict特点:无序,键唯一(键值对)
字典占用的空间比list的大,是采用空间换取时间。
如果有2个键,后一个键对应的值会覆盖前一个键对应的值。
键是唯一的,且是不可变数据类型。
创建
#字典的创建
name1={
112:{"name":"lizhi","age":27},
113:{"name":"zouyuncheng","age":24},
}
name2={
113:{"name":"zouruncheng","age":25},
115:{"name":"hanxingyu","age":24},
}
增
name1[114]={"name":"gaoyue","age":25} #字典的键是唯一的,且字典是无序存储的(像list有序,需要维护额外的序号列表)
print(name1)
删
#del name1[114]
print(name1.pop(114))
print(name1)
同时添加多个元素或一个字典
name1.update(name2) #将name2的元素添加到name1。若name1中存在,则覆盖name1中的该元素
改
print(name1)
name1.setdefault(118,"000")
print(name1)
name1[112]["name"]="lizhi1111"
print(name1)
查
print(name1) #打印所有
print(name1[112]) #打印下表为112的元素
print(name1.get(113))
print(113 in name1)
print(name1.keys())
print(name1.values())
遍历
for i in name1:
print(i,name1[i])
for k,v in name1.item: #不推荐使用,效率很低
print (k,v)
其他
dic=dict()
dic=dic.fromkeys([1,2,3],"aaa")
print(dic) #{1: 'aaa', 2: 'aaa', 3: 'aaa'}
快速生成字典
info= {1:"a",2:"b"}
info=info.fromkeys([4,5,6,7],["a","b"])
print(info)
result:
{4: ['a', 'b'], 5: ['a', 'b'], 6: ['a', 'b'], 7: ['a', 'b']}