温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Python怎么合并两个list或dict

发布时间:2021-12-17 17:35:43 来源:亿速云 阅读:344 作者:iii 栏目:大数据

本篇内容主要讲解“Python怎么合并两个list或dict”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python怎么合并两个list或dict”吧!  

合并 list

如果有两个 list,分别为:

x = [1, 2, 3]
y = [4, 5, 6]
 

想得到合并的结果:z = [1, 2, 3, 4, 5, 6]

该怎么做?

这个比较简单,我们直接用 z=x+y 来合并列表:

In [1]: x=[1,2,3]

In [2]: y=[4,5,6]

In [3]: z=x+y

In [4]: z
Out[4]: [1, 2, 3, 4, 5, 6]
   

合并 dict

和上题类似,我们如果想合并两个字典 x,y,合并为 z。要怎么做呢?大家应该记得 dict 有个方法 update 可以更新字典,但是是更新了字典,而不是生成一个合并后的结果。如果直接两个相加,字典是会报错的。

In [5]: x = {'a': 1, 'b': 2}

In [6]: y = {'b': 10, 'c': 11}

In [7]: z = x.update(y)

In [8]: print(z)
None

In [9]: z=x+y
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-9-4293a5baa16b> in <module>
----> 1 z=x+y

TypeError: unsupported operand type(s) for +: 'dict' and 'dict'
 

显然,这样是没有达到要求的。那么怎么做呢?

非常巧妙的是,Python3.5 之后对*的 unpacking(拆包,解包或解构)操作来完成。

我们直接在字典的前面加上两个*,然后用一对{}新建字典即可。

In [10]: z = {**x, **y}

In [11]: z
Out[11]: {'a': 1, 'b': 10, 'c': 11}
   

扩展

回到最开始的列表相加,其实就有了另一种方式,也使用*完成。

In [12]: x=[1,2,3]

In [13]: y=[4,5,6]

In [14]: z=[*x,*y]

In [15]: z
Out[15]: [1, 2, 3, 4, 5, 6]
 

而且,这种方式不仅限于合并 list,还可以混合 tuple 一起合并。

In [16]: a=[7,8,9]

In [17]: b=(11,22,33)

In [18]: z=[*x,*y,*a,*b]

In [19]: z
Out[19]: [1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 22, 33]

如果,你的列表有重复内容需要去除,只需要再配合 set 使用即可。

注意*的个数和外层的括号类型。

该PEP建议扩展使用* iterable拆包运算符和** dictionary拆包运算符,以允许在更多位置、任意次数和其他情况下拆包。特别是在函数调用、理解和生成器表达式以及显示中。

到此,相信大家对“Python怎么合并两个list或dict”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI