dict字典的增删改查
一、字典
1.字典是无序的。
2.数据关联性强。
3.键值对,是python当中唯一一个映射的数据类型,字典的键必须是可哈希的(不可变的数据类型,如字符串.数字.布尔值.元祖);不可哈希的(可变的数据类型。如列表.字典.集合),键并且是唯一的。
一、增
1.setdefault.在字典中添加键值对,如果只有键那对应的值是none,但是如果原字典中存在设置的键值对,则他不会更改或者覆盖。
dic={'name':'zhangsan','age':'18','hobby':'music'}
dic.setdefault('name','b')
print(dic) #{'name': 'zhangsan', 'age': '18', 'hobby': 'music'}
dic.setdefault('k','b')
print(dic) #{'name': 'zhangsan', 'age': '18', 'hobby': 'music', 'k': 'b'}
2.
dic['name']='lisi'
print(dic) #{'name': 'lisi', 'age': '18', 'hobby': 'music'}
二、删
1.pop根据key删除键值对,并返回对应的值,如果没有key则返回默认返回值
print(dic.pop('name')) #zhangsan
print(dic.pop('k',None)) # None
2.popitem 随机删除字典中的某个键值对,将删除的键值对以元祖的形式返回
dic.popitem()
print(dic) #{'name': 'zhangsan', 'age': '18'}
3.clear清空字典
dic.clear()
print(dic) #{}
4.del没有返回值
del dic['name']
print(dic) #{'age': '18', 'hobby': 'music'}
del dic['123']
print(dic) #没有就报错
三、改
1.update.将dic所有的键值对覆盖添加(相同的覆盖,没有的添加)到dic1中
dic={'name':'zhangsan','age':'18','hobby':'music'}
dic1={'name':'lisi','job':'teacher',}
dic.update(dic1)
print(dic) #{'name': 'lisi', 'age': '18', 'hobby': 'music', 'job': 'teacher'}
print(dic1) #{'name': 'lisi', 'job': 'teacher'}
2.
dic['name']='lisi'
print(dic) #{'name': 'lisi', 'age': '18', 'hobby': 'music'}
四、查
1.get没有就返回none,也可以返回设定的返回值
print(dic.get('name')) #zhangsan
print(dic.get('123')) #None
print(dic.get('123','meiyou')) #meiyou
2.没有会报错
print(dic['name']) # print(dic['name'])
print(dic['123']) #报错
五、其他使用方法
keys
print(dic.keys()) #dict_keys(['name', 'age', 'hobby'])
for i in dic.keys():
print(i) #name age hobby
for l in dic:
print(l) #name age hobby
values
print(dic.values()) #dict_values(['zhangsan', '18', 'music'])
for i in dic.values():
print(i) #zhangsan 18 music
items
print(dic.items()) #dict_items([('name', 'zhangsan'), ('age', '18'), ('hobby', 'music')])
for i in dic.items():
print(i) #('name', 'zhangsan') ('age', '18') ('hobby', 'music')
输出的是字符
for i,l in dic.items():
print(i,l) #name zhangsan age 18 hobby musi
浙公网安备 33010602011771号