以 Python 方式将多个值插入列表

标签 python list insert idioms

我想打开这个列表:

l=["Three","Four","Five","Six"]

进入这个:

['Three', 3, 'Four', 4, 'Five', 5, 'Six', 6]

我使用这段代码(效果很好)来做到这一点:

for i,j in zip(range(1,len(l)*2,2),range(3,7)*2):
    l.insert(i,j)

但我猜 Python 不会以此为荣。有更短的方法吗?

最佳答案

我可能会这样做:

>>> a = ["Three","Four","Five","Six"]
>>> b = range(3,7)
>>> zip(a,b)
[('Three', 3), ('Four', 4), ('Five', 5), ('Six', 6)]
>>> [term for pair in zip(a,b) for term in pair]
['Three', 3, 'Four', 4, 'Five', 5, 'Six', 6]

或者,使用 itertools.chain:

>>> from itertools import chain
>>> list(chain.from_iterable(zip(a,b)))
['Three', 3, 'Four', 4, 'Five', 5, 'Six', 6]

关于以 Python 方式将多个值插入列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15041834/

相关文章:

Python - 代码中的多个 SQL 查询

python - map(sum,zip(*list)) 是对任意长度列表的列求和的最快方法吗?

php - 字符串未插入表中

python - 对 Python 中的正则表达式模式感到困惑

python - wxPython检查c++部分是否被删除

list - 允许方法对我的类型列表进行操作?

python - 如何从父类扩展列表?

xml - 在 SQL Server 中,是否可以将多个插入替换为采用 XML 参数的单个插入?

php - 为什么 MySQL 不返回最后插入的 id,它返回 0?

Python:无法从 init 文件导入在 setUp 方法中初始化的全局变量