迷人的学霸操作!教你Python中合并字典的多种解题方法

IT科技类资讯2025-11-05 09:23:4776286

本文转载自公众号“读芯术”(ID:AI_Discovery)

Python 3.9现在处于初始开发阶段,迷人但其中让人惊喜的学典的多种新功能可不少。其中一个是霸操并字颠覆性的,它能使处理Python字典时编写的作教中合代码更具可读性也更精简。

第一个稳定版本应该在2020年10月问世。解题在与它正式见面前,迷人有一些问题必须搞清楚。学典的多种

Python字典

字典是霸操并字Python中特有的数据结构。它包含多个元素,作教中合每个元素都是解题一个键值对。例如,迷人初始化包含两个元素的学典的多种字典d1。键“name”的霸操并字值为“Tom”,而键“age”的作教中合值为20。

d1 ={name: Tom,解题 age: 20} 

该字典存储了20岁的Tom的信息。

假设出于某些原因我们收集了汤姆的更多信息,例如他的GPA和婚姻状况。源码下载现在可以创建另一个名为d2的字典。

d2 ={gpa: 4.0, is_single: True} 

现在想将这两个字典合并在一起,因为它们包含着同一个人(Tom)的不同信息。

那么问题来了,如何在Python中合并两个字典?

1. 笨方法

可以使用语句dict_name[key] = value中的赋值运算符“=”在现有字典中插入新元素。

d1 ={name: Tom, age: 20} d1[sex] = Male# d1 == {name: Tom, age: 20, sex: Male} 

因此,在不使用任何特定的字典方法的情况下,想到的第一个方法是编写一个for循环,使用iterable .items()在每个键值对上进行迭代,然后将该对插入新的字典dnew中。

d1 ={name: Tom, age: 20} d2 = {gpa: 4.0, is_single: True} dnew = dict()for key, value in d1.items():     dnew[key] = value for key, value in d2.items():     dnew[key] = value# dnew == {name:Tom, age: 20, gpa: 4.0, is_single: True} 

但是,合并字典应该是非常简单明了的,并且应该用一行代码就可以实现。

2. 默认方法

实际上,有一个内置方法可以将字典d1与另一个字典d2“更新”。

dnew =d1.copy() dnew.update(d2) 

一个缺点是.update()方法就地修改字典。需要先复制d1来创建新字典dnew。这种“内置”方法无法方便地合并字典。

可以合并成一行代码吗?可以!

3. “整洁”的方法

Python从版本3.5+起支持字典解压**。可以通过解压两个字典中的亿华云元素来创建新的“合并”字典。

dnew ={**d1, **d2} 

这种解压方法成为Python3.5+合并字典的实际使用的方法。但是,这种语法在某些人看来可能不美观,而且对大多数人来说显然也不直观。当初次看到的时候,能猜到是什么意思吗?

还有另一种简洁的方法可以用一行代码就将字典合并。它看起来也不直观。

dnew =dict(d1, **d2) 

4. Python 3.9中干净的方法

Python 3.9引入了一种新的干净的(!)方法,使用联合运算符“|”合并字典。非常简洁。

dnew =d1 | d2# dnew == {name: Tom, age: 20, gpa: 4.0, is_single: True} 

该联合运算符实际上在Python中并不新鲜。它可以用于“合并”两个集合。集合是无序且未索引的集合,也用花括号括起来。

a = {1,2, 3} b = {3, 4, 5} print( a | b ) # {1, 2, 3, 4, 5} 

拓展赋值

对于两个列表或两个值a和b,a += b是a = a + b的缩写。这种拓展赋值行为也适用于字典联合运算符。这意味着d1 | = d2等于d1 = d1 | d2。网站模板

注意事项

集合是无序的,字典是按顺序插入的(Python 3.6),即字典会记住插入元素的顺序。这意味着字典并集是不可交换的。d1 | d2和d2 | d1将导致合并的字典元素顺序不同。

不满足于仅仅得出答案,“学霸”追求的是最优解法。这道题目,你学会了嘛?

本文地址:http://www.bzve.cn/html/82f65499263.html
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

热门文章

全站热门

硬盘被水泡了会怎么样?(水泡硬盘的后果及应对方法)

惠普电脑,预装ubuntu系统如何修改系统语言1、首先,我们打开Ubuntu桌面左侧工具栏中的”系统设置”2、然后选中设置中的“Language Support”3、这里的默认系统语言为English4、我们找到汉语(中国),向上拉,使汉语(中国)的位置替换English的位置。有的时候,不好拉,多拉几次就好了5、将汉语(中国)拉到顶部后,我们点击“Apply System-Wide”,将汉语(中国)应用到整个系统。6、在弹出来的对话框中,输入你的root密码之后,点击“Authenticate”。等一会儿,待应用完成之后,我们重启7、在重启之后,我们会看到,有一个询问的对话框,问你是否将标准文件夹更新到当前语言,这里按照个人喜好而定”。我们这里也已经看到,系统语言已经由English修改为了汉语。至此,完成了系统语言的更换

电脑密码输入错误的常见问题与解决方法(密码输入错误的原因分析及应对策略)

如何开启电脑的暴走模式?(教你简单几步实现电脑暴走)

锤子M1L(探索锤子M1L的游戏性能与亮点,带你领略全新游戏世界)

常见的Flash播放器插件安装是这样的:复制代码代码如下:sudo ln -fs /usr/lib/adode-flashplugin/libflashplayer.so /usr/lib/mozilla/plugins/libflashplayer.so 5.重启firefox,即可。BUT....复制代码代码如下:E:无法获得锁/var/lib/dpkg/lock- open (11:资源暂时不可用)复制代码代码如下:sudo rm -rf /var/cache/apt/archives/lock复制代码代码如下:E: dpkg 被中断,您必须手工运行 sudo dpkg --configure -a 解决此问题。既然系统给出了这样的提示,那咱照大爷说的办呗,所以老老实实运行:复制代码代码如下:sudo dpkg --configure -a结果却是:我可以说脏话吗?嗯,不能吗?好吧,继续想办法解决问题!头痛医头脚痛医脚,这里我当时有两条思路。第一是结束掉dpkg的进程,然后再次运行sudo dpkg --configure -a,结果当然是失败告终。所以还是得从卸载掉之前安装的flashplugin下手,值得注意的是,这里并不是运行系统提示我们运行的sudo dpkg --configure -a,而是sudo dpkg -r flashplugin-installer,所以运行:复制代码代码如下:sudo dpkg -r flashplugin-installer但是这时显示:复制代码代码如下:dpkg: error: dpkg status database is locked by another process神马!你又被锁定了?so,老办法搞定它!搞定之后需要再次执行未成功的卸载命令复制代码代码如下:sudo rm -rf /var/lib/dpkg/lock复制代码代码如下:ps -af | grep dpkg这时可以看到dpkg的具体进程信息:复制代码代码如下:root 4439 4427 0 01:42 pts/3 00:00:00 /bin/sh /var/lib/dpkg/info/update-notifier-common.postinst configure 0.119ubuntu8.1 ray 4659 3635 0 01:42 pts/4 00:00:00 grep --color=auto dpkg抓住它就不要放过它!捉住干掉,执行:复制代码代码如下:sudo kill -9 4439至此,卸载工作就算是成功告终了,下面步入安装flashplugin的正轨。首先去Adobe官网下载复制代码代码如下:cd /home/aa/Downloads复制代码代码如下:sudo cp -r usr/* /usrsudo cp libflashplayer.so /usr/lib/firefox/plugins/这时候已经完成了复制工作,可以使用sudo vim /usr/lib/firefox/plugins/libflashplayer.so来验证是否完成了动作,假如看到了一堆的乱码,那就是成功完成了步骤。输入:q即可退出vim。

最近在做一个电子书生成的项目,需要根据电子书的内容资源在线添加后自动打包成不同的包名的APK,同时自动添加各个市场渠道等内容信息,由于需要与后端联动,一键生成,所以必须在服务器上进行Android项目的打包生成,因为服务器是UbuntuServer,没有图像界面,所有只能搭建一个命令行环境,直接执行ant脚本打包,找了一下资料,根据自己的环境配置搭建过程与大家分享Ant环境准备复制代码代码如下: sudo apt-get install ant复制代码代码如下: tar -xf apache-ant-1.8.2-bin.tar.gz复制代码代码如下:复制代码代码如下: ant -version复制代码代码如下: unzip adt-bundle-linux-x86_64-20130729.zip复制代码代码如下: cp ./adt-bundle-linux-x86_64-20130729/sdk/ /opt/sdk复制代码代码如下: vim /etc/bash.bashrc复制代码代码如下:复制代码代码如下: android create project --target android-18 --name APP --path App --activity MainActivity --package com.yourtion.android复制代码代码如下: sudo apt-get install openjdk-7-jre openjdk-7-jdk openjdk-7-jre-lib这样环境就基本OK了,大家使用过程还有什么问题欢迎一起交流!

ubuntu怎么开启root帐号?ubuntu 的root账户具有最高的系统权限,它类似于windows系统中的管理员账号,但是比windows系统中管理员账号的权限更高,一般都情况下不要使用root账户,但是有的时候还是要使用root账户,下面就为大家介绍ubuntu 开启root帐号方法!说明:小编的这个建议只适合于10.10之前版本的ubuntu系统,后面的11.04,11.10。。。14.04系统因为采用的默认桌面不同,所以本经验不适用,若要使用,那么请安装GNOME桌面ubuntu 开启root帐号方法:1、点击系统菜单栏中的“应用程序”,然后点击附件,之后在打开的附件子菜单中选择“终端”2、点击终端后就打开如下图所示的终端工具,大家要做的所有操作都在这个窗口中进行3、其实root账户是存在的,只是需要我们给它设置一个密码,然后使用的时候用root用户名登陆,然后输入对应的密码就就以root用户登录了,所以开启root账户,实际上就是给root用户设置一个密码的过程,下面我们就来给root设置密码,另外还需要注意的是,只能使安全ubuntu系统的时候创建的用户账号才能启用root账号,使用下面的命令来给root账号设置密码:sudo passwd root执行上面的命令后,就会提示要求输入当前用户的密码4、确认我们的密码正确后,就会提示“Enter new UNIX password”,这个就是设置密码的提示,输入大家要设置的密码,注意在设置密码的时候是看不到任何字符的,只有我们自己注意了5、输入密码后敲回车键,之后会提示我们再次确认密码,输入确认密码,然后按Enter回车键6、密码设置成功,这样root用户也就开启了,以后大家要使用root账号的时候只要使用相关切换命令就可以了,具体怎么切换到root账号的命令请看小编另外一个经验的分享END以上就是ubuntu怎么开启root帐号的方法,希望对大家有所帮助!

热门文章

友情链接

滇ICP备2023006006号-39