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

标签 python list for-loop list-comprehension

我通过此列表理解访问一个函数,并通过为 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/

相关文章:

python - 在 Python 中将列表初始化为已知数量的元素

c# - 如何使用 List 压缩一堆 IF 语句——这可能吗?

c++ - 在 C++ 中增量构建编译时间列表

java 使用 do...while 循环数组

java - 我们可以在迭代器 for 循环中添加额外的停止条件吗?

python - 从哪里获取 SSLSocket 的签名算法名称?

python - 在 PyMongo 中使用 .sort

python - 同一图中的多个等值线图

python - .split() 和 .append 来自 .txt 文件的信息作为元组到新列表

java - 如何在java中制作实时消息或字符计数器