gpt4 book ai didi

python - 使用 zip 将不同结构的数据组织成元组列表

转载 作者:太空宇宙 更新时间:2023-11-03 15:31:45 25 4
gpt4 key购买 nike

考虑以下数据:

x = [(1,1,1),(2,2,2),(3,3,3),(4,4,4)] 
y = ['a','b','c','d']

我想实现以下结构:

[(1,1,1,'a'),(2,2,2,'b'),(3,3,3,'c'),(4,4,4,'d')]

现在,我正在这样做:

zip(*zip(*x),y)

我想知道是否有针对暴露问题的标准解决方案。

最佳答案

您的解决方案实际上在 Python 2.7 中不起作用:

Python 2.7.13 (default, Jan 13 2017, 10:15:16) 
[GCC 6.3.1 20161221 (Red Hat 6.3.1-1)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> x = [(1,1,1),(2,2,2),(3,3,3),(4,4,4)]
>>> y = ['a','b','c','d']
>>> zip(*zip(*x),y)
File "<stdin>", line 1
SyntaxError: only named arguments may follow *expression

...尽管在 Python 3 中确实如此,但要感谢 extended iterable unpacking .

抛开兼容性不谈,它相当不透明。更简单的列表理解可以让您更清楚地了解您正在做什么:

[a + (b,) for a, b in zip(x, y)]

...并且可以跨 Python 版本工作。

作为一个附带好处,根据我机器上的一些快速、肮脏的测试,它比嵌套 zip 方法快大约 70%。

关于python - 使用 zip 将不同结构的数据组织成元组列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42847500/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com