2024-04-20 05:36:00 发布
网友
我有一个返回元组的函数foo()。假设('a', 1) 我有一个iterable a,我想对其进行迭代,并将每个项传递给该函数。 最后我需要两个列表-r1和r2,其中r1包含函数返回的元组中的所有第一项。第二个列表r2-这些元组中所有第二个项的结果。在
foo()
('a', 1)
a
r1
r2
r1 = ['a', 'b', 'c'] r2 = [1, 2, 3]
我不太喜欢这种方法:
您可以为此使用^{}函数。在
>>> result = [('a', 1), ('b', 2), ('c', 3)] >>> r1, r2 = zip(*result) >>> r1 ('a', 'b', 'c') >>> r2 (1, 2, 3)
zip(*result)将result中的每个列表解压缩,并将它们作为单独的参数传递到zip函数中。它本质上是transposes列表。它生成两个元组的列表,然后将它们分配给r1和{}。在
zip(*result)
result
zip
zip函数可以很好地满足您的需要。 这里有一个很有帮助的帖子,它与这个功能直接相关
understanding zip function
只需使用zip()!在
result = [foo(i) for i in a] r1, r2 = zip(*result)
您可以为此使用^{} 函数。在
zip(*result)
将result
中的每个列表解压缩,并将它们作为单独的参数传递到zip
函数中。它本质上是transposes列表。它生成两个元组的列表,然后将它们分配给r1
和{zip函数可以很好地满足您的需要。 这里有一个很有帮助的帖子,它与这个功能直接相关
understanding zip function
只需使用zip()!在
相关问题 更多 >
编程相关推荐