page contents

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

本文讲述了介绍9个必须知道的python字典骚操作,从此键盘飞起!具有很好的参考价值,希望对大家有所帮助。一起跟随六星小编过来看看吧,具体如下:

attachments-2023-12-159iW0Q66581364aae1ab.jpg本文讲述了介绍9个必须知道的python字典骚操作,从此键盘飞起!具有很好的参考价值,希望对大家有所帮助。一起跟随六星小编过来看看吧,具体如下:

字典,python数据结构中的大杀器,是另一种可变容器模型,且可存储任意类型对象。字典是 除列表以外 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}

值得注意的是:第一个例子,d1 和 d2 不会被修改,并且相同的key不会被重新赋值。第二个例子,d2 被 d1更新,相同的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入门到进阶的学习资料以及教程,感兴趣的小伙伴赶紧行动起来吧。

attachments-2022-05-rLS4AIF8628ee5f3b7e12.jpg

  • 发表于 2023-12-19 14:21
  • 阅读 ( 193 )
  • 分类:Python开发

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
轩辕小不懂
轩辕小不懂

2403 篇文章

作家榜 »

  1. 轩辕小不懂 2403 文章
  2. 小柒 1316 文章
  3. Pack 1135 文章
  4. Nen 576 文章
  5. 王昭君 209 文章
  6. 文双 71 文章
  7. 小威 64 文章
  8. Cara 36 文章