当前位置:首页 > 科技  > 软件

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

来源: 责编: 时间:2023-12-21 17:09:52 305观看
导读字典,python数据结构中的大杀器,是另一种可变容器模型,且可存储任意类型对象。字典是 除列表以外 Python 之中 最灵活 的数据类型。字典可以用来 存储多个数据。通常用于存储描述一个物体的相关信息。下面分享9个实用的

字典,python数据结构中的大杀器,是另一种可变容器模型,且可存储任意类型对象。字典是 除列表以外 Python 之中 最灵活 的数据类型。字典可以用来 存储多个数据。通常用于存储描述一个物体的相关信息。yrC28资讯网——每日最新资讯28at.com

yrC28资讯网——每日最新资讯28at.com

下面分享9个实用的字典操作,欢迎大家点赞、收藏、支持!yrC28资讯网——每日最新资讯28at.com

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() 会返回一个新的列表对象,导致使用内存变大。yrC28资讯网——每日最新资讯28at.com

2. 合并字典

# example 1d1 = {'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 2d1 = {'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会被重新赋值。yrC28资讯网——每日最新资讯28at.com

3. 遍历字典

# method 1d = {'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 2d = {'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 对象。yrC28资讯网——每日最新资讯28at.com

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 函数作为排序键按键或值对字典进行排序。yrC28资讯网——每日最新资讯28at.com

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 1chars = ['a', 'b','c','a','d','c']d = {}for c in chars:    d[c] = d.get(c, 0) + 1print(d) # {'a': 2, 'b': 1, 'c': 2, 'd': 1}# method 2import collectionschars = ['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不会改变dx.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字典操作,希望对你有所帮助!yrC28资讯网——每日最新资讯28at.com

本文链接:http://www.28at.com/showinfo-26-51220-0.html九个必须知道的Python字典骚操作

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: 穿越编程时光:20种常用编程语言的"Hello, World!"初体验

下一篇: 13个你不知道的Python技巧

标签:
  • 热门焦点
  • 直屏旗舰来了 iQOO 12和K70 Pro同台竞技

    旗舰机基本上使用的都是双曲面屏幕,这就让很多喜欢直屏的爱好者在苦等一款直屏旗舰,这次,你们等到了。据博主数码闲聊站带来的最新爆料称,Redmi下代旗舰K70 Pro和iQOO 12两款手
  • 六大权益!华为8月服务日开启:手机免费贴膜、维修免人工费

    8月5日消息,一年一度的华为开发者大会2023(Together)日前在松山湖拉开帷幕,与此同时,华为8月服务日也式开启,到店可享六大专属权益。华为用户可在华为商城Ap
  • 一篇聊聊Go错误封装机制

    %w 是用于错误包装(Error Wrapping)的格式化动词。它是用于 fmt.Errorf 和 fmt.Sprintf 函数中的一个特殊格式化动词,用于将一个错误(或其他可打印的值)包装在一个新的错误中。使
  • 学习JavaScript的10个理由...

    作者 | Simplilearn编译 | 王瑞平当你决心学习一门语言的时候,很难选择到底应该学习哪一门,常用的语言有Python、Java、JavaScript、C/CPP、PHP、Swift、C#、Ruby、Objective-
  • 消费结构调整丨巨头低价博弈,拼多多还卷得动吗?

    来源:征探财经作者:陈香羽随着流量红利的退潮,电商的存量博弈越来越明显。曾经主攻中高端与品质的淘宝天猫、京东重拾“低价”口号。而过去与他们错位竞争的拼多多,靠
  • 小米MIX Fold 3下月亮相:今年唯一无短板的全能折叠屏

    这段时间以来,包括三星、一加、荣耀等等有不少品牌旗下的最新折叠屏旗舰都有新的进展,其中荣耀、三星都已陆续发布了最新的折叠屏旗舰,尤其号荣耀Magi
  • 疑似小米14外观设计图曝光:后置相机模组变化不大

    下半年的大幕已经开启,而谁将成为下半年手机圈的主角就成为了大家关注的焦点,其中被传有望拿下新一代骁龙8 Gen3旗舰芯片的小米14系列更是备受大家瞩
  • 2纳米决战2025

    集微网报道 从三强争霸到四雄逐鹿,2nm的厮杀声已然隐约传来。无论是老牌劲旅台积电、三星,还是誓言重回先进制程领先地位的英特尔,甚至初成立不久的新
  • iQOO Neo8 Pro评测:旗舰双芯加持 最强性能游戏旗舰

    【Techweb评测】去年10月,iQOO推出了一款Neo7手机,该机搭载了联发科天玑9000+,配备独显芯片Pro+,带来了同价位段最佳的游戏体验,一经上市便受到了诸多用
Top