首页 > 其他 > 详细

dict的常用方法

时间:2019-12-25 19:18:32      阅读:81      评论:0      收藏:0      [点我收藏+]

注:dic表示定义的一个字典变量,如:dic = {‘name‘: ‘shawn‘, ‘age‘: 18}

增:

1.  dic[‘love‘] = ‘girl‘  直接通过新的键值对进行添加

技术分享图片
dic = {name: shawn, age: 18}
dic[love] = girl
print(dic)
打印结果:
{name: shawn, age: 18, love: girl}
View Code

2.  dic.setdefault()  如果原字典中不存在该key值,则新增该key,默认value值为None,如果有key,value两个参数,且原字典中不存在,则新增,若存在该key,则返回对应value

技术分享图片
dic = {name: shawn, age: 18}
dic.setdefault(love)  # 两个参数,参数1为key,参数2为value,参数2默认为None可不填,原字典中不存在则新增,value默认为None
print(dic)
打印结果:
{name: shawn, age: 18, love: None}

dic.setdefault(love, girl)  # 原字典中不存在该键值对则新增
print(dic)
打印结果:
{name: shawn, age: 18, love: girl}

res = dic.setdefault(name)  # 原字典中存在该key值,返回对应value
print(res)
打印结果:
shawn
View Code

3.  dic.update()  用一个字典更新另一个字典,如果被更新的字典中没有无对应的键值对,则新增到该字典中

技术分享图片
dic1 = {"name": "shawn"}
dic2 = {"age": 18}
dic1.update(dic2)
print(dic1)
打印结果:
{name: shawn, age: 18}
View Code

4.  dict.fromkeys()  创建新字典,参数1为可迭代对象,参数2为新字典的value值。该方法将参数1打散作为key,参数2作为value值

技术分享图片
dic = dict.fromkeys([name, age], 18)
print(dic)
打印结果:
{name: 18, age: 18}

dic = dict.fromkeys(abc, 18)
print(dic)
打印结果:
{a: 18, b: 18, c: 18}
View Code

删:

1.  dic.pop()  根据键删除指定的键值对,有返回值,返回值为被删除键值对的value值

技术分享图片
dic = {name: shawn, age: 18}
res = dic.pop(age)
print(dic)
打印结果:
{name: shawn}
print(res)
打印结果:
18
View Code

2.  dic.popitem()  随机删除一个键值对,但是一般是删除末尾的键值对,有返回值,返回值为被删除的键值对,以元组的形式返回

技术分享图片
dic = {name: shawn, age: 18}
res = dic.popitem()
print(dic)
打印结果:
{name: shawn}
print(res, type(res))
打印结果:
(age, 18) <class tuple>
View Code

3.  del dic[‘name‘]  用del方法删除指定键值对

技术分享图片
dic = {name: shawn, age: 18}
del dic[name]
print(dic)
打印结果:
{age: 18}
View Code

改:

1. dic[‘name‘] = ‘Jack‘  通过对字典的key赋新值进行修改

技术分享图片
dic = {name: shawn, age: 18}
dic[name] = Jack
print(dic)
打印结果:
{name: Jack, age: 18}
View Code

2.  dic.update()  用一个字典更新另一个字典,如果被更新的字典已含对应的key值,则该key对应的value被替换,如果被更新的字典无对应的键值对,则新的键值对被添加到该字典中

技术分享图片
dic1 = {"name": "shawn"}
dic2 = {"name": "Jack", "age": 18}
dic1.update(dic2)
print(dic1)
打印结果:
{name: Jack, age: 18}
View Code

查:

1.  dic[‘name‘]  直接通过键取对应的value值,如果字典不存在该key则会报错

技术分享图片
dic = {name: shawn, age: 18}
res = dic[name]
print(res)
打印结果:
shawn

res = dic[gender]  # 不存在key值时
print(res)
打印结果:
Traceback (most recent call last):
  File "D:/python基础/字典.py", line 24, in <module>
    res = dic[gender]
KeyError: gender
View Code

2.  dic.get()  通过key获取value值,如果不存在则返回None,不会报错,项目中推荐使用

技术分享图片
dic = {name: shawn, age: 18}
res = dic.get(name)
print(res)
打印结果:
shawn

res = dic.get(gender)  # 不存在时
print(res)
打印结果:
None
View Code

3.  dic.items()  获取字典所有键值对,可获取字典长度,也可将字典转换成列表

技术分享图片
dic = {name: shawn, age: 18}
res = dic.items()
print(res)
打印结果:
dict_items([(name, shawn), (age, 18)])
# 一般这样使用:
for k, v in dic.items():
    pass

print(len(res))  # 获取字典长度
打印结果:
2

lst = list(res)  # 转换成列表
print(lst)  
打印结果:
[(name, shawn), (age, 18)]
View Code

4.  dic.keys()  获取字典的所有键

技术分享图片
res = dic.keys()
print(res)
打印结果:
dict_keys([name, age])

# 可将结果转换成列表
lst = list(res)
print(lst)
打印结果:
[name, age]
View Code

5.  dic.values()  获取字典的所有value值,功能同dic.keys()

6.  enumerate(dic)  枚举获取键值对

技术分享图片
dic = {name: shawn, age: 18}
for i in enumerate(dic):
    print(i, type(i))
打印结果:
(0, name) <class tuple>
(1, age) <class tuple>
View Code

dict的常用方法

原文:https://www.cnblogs.com/shawn2019/p/12098341.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!