Python字典技巧一锅炖

【python小技巧】字典的值比较大小及字典的排序 我们在对字典进行操作时,比如要比较大小或者排序这些操作,对于字典的键是可以的,但无法对值进行直接操作,比如下面的字典, price={ 'apple':20.59, 'BERKSHIRE':280000, 'amazon':296, 'alibaba':365 } 假设某个字典中存储了一些股票的价格,我们要筛选出价格最高的或者最低的股票,我们可以找出最低的价格,比... 阅读详情
优雅的字典

北冥有鱼,其名为鲲,鲲之大,一锅炖不下。鲲炖不下,那今天我们来一锅炖了字典(dict)。
在Python的使用中,字典是一个基础且使用率报表的数据类型。

字典的创建与初始化
#创建一个字典
a={}
b=dict()
"""
我们常初在始化空字典时,使用到上面两种方式。
如果我们在字典创建的同时需要赋值呢?
"""
# 普通的方式
a={'a':1,'b':'to','c':'63'}
# 更优雅的赋值
b=dict(a=1,b='to',c='63') 
"""不管从重复输入的引号上,还是从输入方便考虑,你都该选择后者
再深入一下,如果我们现在有四个人,
需要统计他们的工资,初始没人都是10000,该如何创建?
按照上面的dict(x=y)没错,但批量的初始化,你应该使用更优雅的方式:
"""
names=["zhang","wang","li","zhao"]
# 普通方式
users = dict(zhang=10000,wang=10000,li=10000,zhao=10000)
# 更优雅的方式
user1.dict().formatkeys(names,10000) 
获取字典的值
a={'a':1,'b':'to','c':'63'}
a['b']
>>> output:  to
"""
上面的这种value值获取方式较为常见,但如果a中没有b,
或者在字典的使用过程中b 这个key被del了呢?
这是会报一个KeyError的错误,所以养成好习惯,使用下面的方式
当key值不存在时,返回none,或者自定义一个默认值。
"""
a.get('b',[default_no可选...])
说说更新与删除
#  更新
a={'a':1,'b':'to','c':'63'}
a.update('a':2)
a.update(a=2) # 这种方式同样适用与更新操作
# 删除某个键值对
del a['a']
pop('a')
"""
两者都可以达到删除某个键值对的操作,
但后者相当于去除后删除,具备返回值
"""
del a 删除字典a
a.clear()清空字典a
判断has_key操作
"""
python2中,判断字典是否存在某个值,可以使用has_key('key'),
但在python3中取消了该参数,如果我们想判断可以使用以下方式:
"""
a={'a':1,'b':'to','c':'63'}
'b' in a.keys()
a.__contains__('b')
使用enumerate,优雅的输出字典
a = {'a': 1, 'b': 'to', 'c': '63'}
for line, item in enumerate(a.items(), start=1):
    print("[{}] {} --> {}".format(line, *item))
>>> output:
"""
[1] a --> 1
[2] b --> to
[3] c --> 63
"""
OrderedDict的使用

我们知道默认的dict(字典)是无序的,但是在某些情形我们需要保持dict的有序性,这个时候可以使用OrderedDict,它是dict的一个subclass(子类),但是在dict的基础上保持了dict的有序型,下面我们来看一下使用方法。
example1:

>>> from collections import OrderedDict
# 无序的dict
>>> d = {'banana': 3, 'apple': 4, 'pear': 1, 'orange': 2}

这是一个无序的dict(字典),现在我们可以使用OrderedDict来让这个dict变得有序。

# 将d按照key来排序
>>> OrderedDict(sorted(d.items(), key=lambda t: t[0]))
OrderedDict([('apple', 4), ('banana', 3), ('orange', 2), ('pear', 1)])
# 将d按照value来排序
>>> OrderedDict(sorted(d.items(), key=lambda t: t[1]))
OrderedDict([('pear', 1), ('orange', 2), ('banana', 3), ('apple', 4)])
# 将d按照key的长度来排序
>>> OrderedDict(sorted(d.items(), key=lambda t: len(t[0])))
OrderedDict([('pear', 1), ('apple', 4), ('orange', 2), ('banana', 3)])

example2:

"""
使用popitem(last=True)方法可以让我们按照LIFO(先进后出)的顺序删除dict中的key-value,
即删除最后一个插入的键值对,如果last=False就按照FIFO(先进先出)删除dict中key-value。
"""
>>> d = {'banana': 3, 'apple': 4, 'pear': 1, 'orange': 2}
# 将d按照key来排序
>>> d = OrderedDict(sorted(d.items(), key=lambda t: t[0]))
>>> d
OrderedDict([('apple', 4), ('banana', 3), ('orange', 2), ('pear', 1)])
# 使用popitem()方法来移除最后一个key-value对
>>> d.popitem()
('pear', 1)
# 使用popitem(last=False)来移除第一个key-value对
>>> d.popitem(last=False)
('apple', 4)

example3:

"""
使用move_to_end(key, last=True)来改变有序的OrderedDict对象的key-value顺序,
通过这个方法我们可以将排序好的OrderedDict对象中的任意一个key-value,
插入到字典的开头或者结尾。
"""
>>> d = OrderedDict.fromkeys('abcde')
>>> d
OrderedDict([('a', None), ('b', None), ('c', None), ('d', None), ('e', None)])
# 将key为b的key-value对移动到dict的最后
>>> d.move_to_end('b')
>>> d
OrderedDict([('a', None), ('c', None), ('d', None), ('e', None), ('b', None)])
>>> ''.join(d.keys())
'acdeb'
# 将key为b的key-value对移动到dict的最前面
>>> d.move_to_end('b', last=False)
>>> ''.join(d.keys())
'bacde'

好了,今天的内容就到这里,如果觉得有帮助,记得点赞支持。欢迎大家关注我的公众号【清风Python】,获取更多Python相关的知识,公众号内有整理好的各类福利数据供大家下载,扫码关注:


5847426-6a08c9b14c8a9d3d.png
清风Python
Python字典解析技巧 在数据分析中,经常要用到字典(Dictionary)这种数据结构。如果用过json数据的话应该很容易理解字典的概念。json是一种轻量级的数据交换格式,它基于JavaScript的一个子集,采用键-值对的方式存储数据。在python中,如何解析字典呢?接下来让我们一起学习字典解析的技巧吧! 阅读详情

相关推荐

OLED的字模提取(保姆级)---基于PCtoLCD2013

做为一个刚刚开始接触编程不久的白菜,这个OLED想做一个信息显示,可是商家给我的例程里就是88,816两种字体的格式,我的屏幕是0.91寸的8*16的字体显示上感觉特别丢丢儿小,我就想整个大的,哎,只怪直接学习习惯不好,总是学一半,绕了好大一圈,才搞好,想写一篇博客,时刻提醒踏实学习,第一次写博客,小白一枚,勿喷。。 OLED屏幕驱动程序功能 我们对Markdown编辑器进行了一些功能拓展与语法支...

qq_44886611的博客 7781

Python 进阶编程之字典的高级用法

一、 collections 中 defaultdict 的使用 1.1 字典的键映射多个值 将下面的列表转成字典 [Python]纯文本查看复制代码 ? 1 l = [('a',2),('b',3),('a',1),('b',4),('a',3),('a',1),('b',3)][/size][/co...

heima201907的博客 452

Debian下Rust环境极速安装指南:国内镜像+避坑配置(附清华/中科大源对比)

本文详细介绍了在Debian系统上快速安装和配置Rust开发环境的完整指南。针对国内网络环境,重点对比评测了清华大学、中国科学技术大学等主流镜像源,提供了详细的安装配置步骤、Cargo优化技巧以及常见问题排查方案,帮助开发者显著提升依赖下载和编译效率。

s8t9u0v1w的博客 1162

python字典高级用法_Python 进阶编程之字典的高级用法

一、 collections 中 defaultdict1.1 字典的键映射多个值将下面的列表转成字典l = [('a',2),('b',3),('a',1),('b',4),('a',3),('a',1),('b',3)]一个字典就是一个键对应一个单值的映射,而上面的列表中有相同键。如果你想要一个键映射多个值,那么就需要将这多个值放到另外的序列中,比如 list 或者 set 里面,像下面这样:...

weixin_39844481的博客 290

Windows系统下LaTeX环境搭建与编辑器配置全攻略

本文详细介绍了在Windows系统下搭建LaTeX环境的完整流程,包括TeX Live的安装、TeXStudio编辑器的配置优化以及常见问题排查。特别针对中文用户推荐使用清华镜像源加速下载,并提供了XeLaTeX编译器配置、中文支持等实用技巧,帮助用户快速上手LaTeX文档编写。

weixin_42554408的博客 449

【产品经理修炼之道】- 优惠券系统从入门到精通(一)

为了满足企业的优惠券业务,优惠券系统一般需要包含哪些功能?这篇文章里,作者从架构、功能等维度做了拆解,一起来看看吧。此部分主要讲解为满足公司优惠券业务,需要优惠券系统必须包含哪些功能,即优惠券架构图。

xiaoli8748的专栏 1810

python内建模块_使用Python的内建模块collections的教程

collections是Python内建的一个集合模块,提供了许多有用的集合类。namedtuple我们知道tuple可以表示不变集合,例如,一个点的二维坐标就可以表示成:>>> p = (1, 2)但是,看到(1, 2),很难看出这个tuple是用来表示一个坐标的。定义一个class又小题大做了,这时,namedtuple就派上了用场:>>> from col...

weixin_39552874的博客 153

路由三大分类:直连路由、静态路由、动态路由

直连路由、静态路由和动态路由各有其独特的特点和适用场景。直连路由适用于简单的直接连接网络,静态路由提供了精确的路径控制,而动态路由则在大型复杂网络中展现出强大的适应性和自动化能力。了解和掌握这三种路由类型的配置和管理,对于网络管理员来说,是确保网络高效、安全运行的重要技能。

网络技术联盟站 4698

Python collection模块的使用

Python中的基本数据结构有list,dict,tuple,set。Python还有一个功能比较强大的包collections,可以处理并维护一个有序的dict,可以提高程序的运行效率。 1、collections中defaultdict的使用 defaultdict在字典dict的基础之上添加一个参数default_factory(default_factory可以指定为list,set,in...

hellenlee22的博客 473

2025年全国青少年信息素养大赛初赛真题(算法创意实践挑战赛C++初中组:文末附答案)

2025年全国青少年信息素养大赛初赛真题(算法创意实践挑战赛C++初中组:文末附答案)

王老师青少年编程 3397

OpenCASCADE:Direct3D CSharp 示例

OpenCASCADE:Direct3D CSharp 示例OpenCASCADE:Direct3D CSharp 示例 OpenCASCADE:Direct3D CSharp 示例 此示例演示了如何在使用CSharp和Windows Presentation Foundation (WPF)编写的.Net应用程序中使用 OCCT 和 DirectX 库。 .Net、OCCT (C++) 和 DirectX 级别之间的连接由用 C++/CLI 编写的代理库OCCProxy和D3DProxy提供。代理库OCC

希望我的博客,能帮上你解决学习中工作中所遇到的问题 1824

Python中popitem()删除并返回最后插入字典中的键值对

欢迎大家转发,一起传播知识和正能量,帮助到更多人。期待大家提出宝贵改进建议,互相交流,收获更大。C选项:popitem()执行后dic为 {'a': 1, 'b': 2}A选项:popitem()的返回值为 ('c', 3)D选项:popitem()的返回值为 ('a': 1)B选项:popitem()的返回值的数据类型为元组。以下对于Python代码的理解错误的是什么?【小白从小学Python、C、Java】【Python-计算机等级考试二级】也是咱们公益编程交流群的入口网址。【Python-数据分析】

liujingwei8610的专栏 418

AI应用架构师进阶:智能控制系统架构的多Agent设计

本文将从“AI应用架构师”的视角,系统讲解智能控制系统中多Agent架构的设计方法。理解多Agent系统的核心特性与在智能控制场景中的优势;掌握多Agent架构的设计流程:从需求分析到角色划分、通信设计、决策实现;通过实战案例(智能家居控制场景),手把手带你落地一个多Agent智能控制系统;探讨进阶话题:动态Agent组织、安全性设计、与大语言模型(LLM)的融合等。在多Agent系统中,Agent(智能体)是具备自主决策能力的最小执行单元。

小程序开发 1086

c++ 字典_Python字典技巧一锅炖与避坑指南

点击上方编程学习者社区,选择创建星标回复关键字资源获取编程资料在Python的使用中,字典是一个基础且使用率报表的数据类型。字典的创建与初始化#创建一个字典a={}b=dict()"""我们常初在始化空字典时,使用到上面两种方式。如果我们在字典创建的同时需要赋值呢?"""# 普通的方式a={'a':1,'b':'to','c':'63'}# 更优雅的赋值b=dic...

weixin_39615984的博客 201

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

Python字典的使用技巧(一篇详解)

在 Python 中,字典(Dictionary)是一种无序、可变的数据类型,用于存储键(key)和值(value)之间的映射关系。并且可以根据键快速检索值。除了基本的添加、删除、获取值之外,还有许多强大的技巧和方法可以让我们更好地利用字典。这里,我们旨在介绍Python 字典的使用方法,并提供一些技巧,希望能帮助大家更好地理解字典数据类型。

TiYong的博客 4534

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

python之字典、字典追加

字典基本用法: 问题: 将列表[1,2,3,4,5,6,7,8,9]中大于5的添加到字典的键为k1中,其余存储到键为k2中 方法 1、常规思路 list = [1,2,3,4,5,6,7,8,9] def dictSort(): dict = {} for item in list: if item > 6: if...

mingyuli的博客 4万+

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Python100个字典编程小技巧

在Python编程的世界里,字典作为一种极为重要的内置数据类型,承载着无序键值对集合的功能,在其他编程语言中,它还有关联数组、哈希映射等别称。通过简洁的花括号{}以及冒号:,我们就能定义字典。

zhang120529的博客 1002

Python字典全面解析:从基础使用到高级技巧

Python字典全面解析:从基础使用到高级技巧

嗨,欢迎来到我的 优快云 博客小天地!一名深耕多年的技术发烧友。在这里,我将把日常工作中积累的宝贵经验,从复杂架构设计的精妙之处,到代码优化的实战技巧,毫无保留地分享给大家。 5950

Python字典操作:12个高级字典使用技巧

接下来,我们将深入更多高级用法,包括字典的高级遍历、视图对象的使用,以及利用字典进行复杂数据处理的技巧。字典推导式是创建字典的优雅方式,特别适合从列表或其他字典中快速构建新字典。通过这些技巧的学习,你的Python字典操作能力应该有了显著提升。使用字典来统计列表中元素出现的次数,是数据分析中的常见需求。将两个列表配对,字典推导式则根据这些对创建字典。: 如果有重叠的键,新字典中的值会覆盖旧值。字典解包允许你将字典的键值对作为函数参数传递。函数与字典结合,展示了在实际数据处理中的应用。

weixin_53707653的博客 1581

8 个令人惊叹的 Python 字典处理技巧

所有 Python 开发人员几乎每天都需要操作字典。如何才能像那些高级 Python 开发人员一样,用 Pythonic 和优雅的方式处理字典呢。本文将介绍高级 Python 工程师常用的 dict 操作技巧。希望你能在阅读后得到一些新的想法。

Python数据挖掘 2706

Python 字典全面解析:从基础用法到高级技巧

Python 字典全面解析:从基础用法到高级技巧

嗨,欢迎来到我的 优快云 博客小天地!一名深耕多年的技术发烧友。在这里,我将把日常工作中积累的宝贵经验,从复杂架构设计的精妙之处,到代码优化的实战技巧,毫无保留地分享给大家。 2750

Python 字典 使用技巧

字典是Python中的一个重要数据类型,适当使用字典可以大大加快开发效率。遍历字典有3种方式,可以根据需要选择,并且Python2于Python3有所区别。Python中获得26个英文字母有很多方法,可以进行拼接得到字符的组合,再利用字典表达式和Python函数得到需要的结果;对字典排序有根据键和根据值两种情况,都可以用lambda表达式进行简单实现。持续更新中...

CUFEECR的博客 1828
上一篇: Python打包工具--Pyinstaller详细介绍
下一篇: Python配置文件总结与避坑指南
清风Python
博客等级 码龄7年 406粉丝 267原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值