自动将 for 循环列表理解中列表中的所有元素发送到函数中

问题描述 投票:0回答:1

我通过此列表理解访问一个函数,并通过为

list_of_lists
的每个元素显式创建一个变量来使其工作。我想要一种更好的方法来访问列表理解中函数中的元素。示例:

list_of_lists = [[0, 1, 2, 3], [0, 1, 2, 3], ...]

[function(i, j, k, l) for i, j, k, l in list_of_lists]

这是一个非常烦人的语法,因为如果

(i, j, k, l) for i, j, k, l
子列表中的元素数量发生变化,我需要更新
list_of_lists

例如,更改为

[[0, 1, 2, 3, 4, 5, 6], ...]
需要语法为
(i, j, k, l, m, n) for i, j, k, l, m, n
并且我需要确保我没有数错。如果每个子列表的元素更多并且函数在编码过程中发生变化,情况会变得更糟。

有没有办法这样说:

[function(*) for * in list_of_lists]

所以我的烦恼有所改善?

我尝试搜索类似的内容,但很明显我不知道能够搜索此内容的正确词。

python list for-loop list-comprehension
1个回答
0
投票

您正在寻找

*
解压列表
https://peps.python.org/pep-3132/

>>> def foo(a, b, c, d):
...     return a + b + c + d
... 
>>> lst = [1, 2, 3, 4]
>>> foo(*lst)  # iterable unpack
10
>>> d = {'a':1, 'b':2, 'c':3, 'd':4}
>>> foo(**d)   # dict unpack
10
© www.soinside.com 2019 - 2024. All rights reserved.