有没有办法在 python 的列表理解过程中向列表中插入多个元素?
例如:
def a():
return [6,7,8]
[a() if i==2 else i for i in range(4)]
[0, 1, [6, 7, 8], 3]
是否可以一次性获得一个平面列表(函数 a 可以返回任何格式的数据)。
谢谢
最佳答案
这看起来有点令人讨厌,但适用于各种数据类型:
import itertools
def a():
return [6,7,8]
l = list(itertools.chain.from_iterable([a() if i==2 else [i] for i in range(4)]))
print(l)
>>>[0, 1, 6, 7, 8, 3]
我们可以看到这也适用于 a
中的其他返回类型:
def a():
return {6,7,8}
>>>[0, 1, 8, 6, 7, 3]
这已经足够复杂了,我会质疑是否采用单行方法。进一步分解可能会更具可读性。
关于python - 将多个元素插入列表中的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28612274/