python - 将多个元素插入列表中的位置

标签 python

有没有办法在 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/

相关文章:

python - 通知父实例有关属性更改

python - 在两组之后将系列转换为数据框

python - Django 查询集过滤过去最近的和将来的所有

python - AttributeError: '<class ' praw.objects.MoreComments' >' has no attribute ' body'

python - 使用django上传文件

python - 如何正确绘制阿累尼乌斯图?

python - 如何让 Python 等待以便您可以读取输出?

Python 从外部 C 程序调用中输出带有换行符的字符串

python - 将字符串转换为日期时间python

python - 如何用 None 替换字符串值 - python,pandas dataframe