9个必须知道的Python字典骚操作

下面分享9个实用的字典操作,欢迎大家点赞、收藏、支持!

1. 键是否存在

d = {"name": "Tony", "age":100}
key = "phone"
if key in d:
    print("Key exists")
else:
    print("Not exists")
# Key exists

值得注意的是:不要用 key in d.keys()。这是一个多余的操作,因为 d.keys() 会返回一个新的列表对象,导致使用内存变大。

2. 合并字典

# example 1
d1 = {'a': 1, 'b': 2}
d2 = {'b': 3, 'c': 4}
d = {**d1, **d2}
print(d) # {'a': 1, 'b': 3, 'c': 4}
print(d1) # {'a': 1, 'b': 2}
print(d2) # {'b': 3, 'c': 4}

# example 2
d1 = {'a': 1, 'b': 2}
d2 = {'b': 3, 'c': 4}
d2.update(d1)
print(d1) # {'a': 1, 'b': 2}
print(d2) # {'a': 1, 'b': 2, 'c': 4}

值得注意的是:第一个例子,d1d2 不会被修改,并且相同的key不会被重新赋值。第二个例子,d2d1更新,相同的key会被重新赋值。

3. 遍历字典

# method 1
d = {'c': 3, 'd': 4, 'a': 1, 'b': 2}
for key, value in d.items():
    print(key, value) # c 3 d 4 a 1 b 2

# method 2
d = {'c': 3, 'd': 4, 'a': 1, 'b': 2}
for key in d:
    print(key, d[key]) # c 3 d 4 a 1 b 2

方法一中 d.items() 需要返回一个额外的 dict_items 对象。

4. 字典推导式

fruits = ['apple', 'mango', 'banana','cherry']
d = {f:len(f) for f in fruits} # 类似于列表推导式
print(d) # {'apple': 5, 'mango': 5, 'banana': 6, 'cherry': 6}

5. 字典排序

字典本质上是一个无序的容器对象(从Python 3.6开始支持顺序,但是这个顺序是指key添加的顺序)。我们可以使用 lambda 函数作为排序键按键或值对字典进行排序。

d = {"c": 3, "a": 1, "f":6, "b": 0}
# 按key排序
sorted(d.items(), key=lambda x:x[0]) # [('a', 1), ('b', 0), ('c', 3), ('f', 6)]
# 按value排序
sorted(d.items(), key=lambda x:x[1]) # [('c', 3), ('f', 6), ('b', 0), ('a', 1)]

6. 用字典计数

# method 1
chars = ['a', 'b','c','a','d','c']
d = {}
for c in chars:
    d[c] = d.get(c, 0) + 1
print(d) # {'a': 2, 'b': 1, 'c': 2, 'd': 1}

# method 2
import collections
chars = ['a', 'b','c','a','d','c']
d = collections.Counter(chars)
print(d) # Counter({'a': 2, 'b': 1, 'c': 2, 'd': 1})

7. 删除字典中的键值对

d = {'ob1':'computer', 'ob2':'mouse', 'ob3':'printer'}
# 删除指定的键值对
del d['ob1']
print(d) # {'ob2': 'mouse', 'ob3': 'printer'}
# 删除所有的键值对
d.clear()
print(d) # {}

8. 同长度的2个list转换为字典

stocks = ['reliance', 'infosys', 'tcs'] 
prices = [2175, 1127, 2750] 
d = dict(zip(stocks, prices))
print(d) # {'reliance': 2175, 'infosys': 1127, 'tcs': 2750}

9. 字典的复制

# 浅复制
d = {'a': 1, 'b': 2}
x = d # 只是引用 ⚠️ 改变x也会改变d!
x.update({'c': 3})
print(x) # {'a': 1, 'b': 2, 'c': 3}
print(d) # {'a': 1, 'b': 2, 'c': 3}
x.clear()
print(x) # {}
print(d) # ()

# 深复制
d = {'a': 1, 'b': 2}
x = d.copy() #复制了一份,改变x不会改变d
x.update({'c': 3})
print(x) # {'a': 1, 'b': 2, 'c': 3}
print(d) # {'a': 1, 'b': 2}
x.clear()
print(x) # {}
print(d) # {'a': 1, 'b': 2}

小节

上面分享的9个python字典操作,希望对你有所帮助!

欢迎大家点赞、收藏,支持!

关于Python学习指南

学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后给大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

包括:Python激活码+安装包、Python web开发,Python爬虫,Python数据分析,人工智能、自动化办公等学习教程。带你从零基础系统性的学好Python!

👉Python所有方向的学习路线👈

Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。(全套教程文末领取)

在这里插入图片描述

👉Python学习视频600合集👈

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

在这里插入图片描述

温馨提示:篇幅有限,已打包文件夹,获取方式在:文末

👉Python70个实战练手案例&源码👈

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

在这里插入图片描述

👉Python大厂面试资料👈

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

在这里插入图片描述

在这里插入图片描述

👉Python副业兼职路线&方法👈

学好 Python 不论是就业还是做副业赚钱都不错,但要学会兼职接单还是要有一个学习规划。

在这里插入图片描述

👉 这份完整版的Python全套学习资料已经上传,朋友们如果需要可以扫描下方CSDN官方认证二维码或者点击链接免费领取保证100%免费

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值