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
posted @ 2017-10-25 17:16  无名指zZ  阅读(246)  评论(0)    收藏  举报