gpt4 book ai didi

python - 在一次迭代中从元组列表中分配两个变量

转载 作者:太空宇宙 更新时间:2023-11-04 07:09:57 24 4
gpt4 key购买 nike

我有一个返回元组的函数 foo()。比方说 ('a', 1)我有一个可迭代的 a ,我想对其进行迭代并将每个项目传递给该函数。最后,我需要两个列表 - r1r2,其中 r1 包含从函数返回的元组中的所有第一项。第二个列表 r2 - 这些元组中所有第二项的结果。

r1 = ['a', 'b', 'c']
r2 = [1, 2, 3]

我不太喜欢这种方法:

result = [foo(i) for i in a]
r1 = [i[0] for i in result]
r2 = [i[1] for i in result]

最佳答案

您可以使用 zip功能。

>>> result = [('a', 1), ('b', 2), ('c', 3)]
>>> r1, r2 = zip(*result)
>>> r1
('a', 'b', 'c')
>>> r2
(1, 2, 3)

zip(*result) 解压 result 中的每个列表并将它们作为单独的参数传递到 zip功能。它本质上是transposes列表。它生成一个包含两个元组的列表,然后将其分配给 r1r2

关于python - 在一次迭代中从元组列表中分配两个变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16503808/

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