我通过此列表理解访问一个函数,并通过为 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
的 (i, j, k, l) >list_of_lists
更改。
例如,更改 [[0, 1, 2, 3, 4, 5, 6], ...]
需要语法为 (i, j, k , l, m, n) 对于 i, j, k, l, m, n
并且我需要确保我没有数错。如果每个子列表有更多元素并且函数在编码过程中发生变化,情况会变得更糟。
有没有办法这样说:
[function(*) for * in list_of_lists]
那么我的困境有所改善吗?
我尝试搜索类似的内容,但很明显我不知道能够搜索此内容的正确词。
最佳答案
您正在寻找*
来解压列表
https://peps.python.org/pep-3132/
[function(*sublist) for sublist in list_of_lists]
>>> 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
关于python - 自动将 for 循环列表理解中列表中的所有元素发送到函数中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/76855609/