将现有列表合并到Python列表文字的中间

时间:2017-10-24 09:09:43

标签: python list merge literals list-literal

在Python中声明列表文字时,是否可以将现有列表合并到声明中?例如:

l = [1, 2, 3]
n = [10, 20, 30, l, 50, 60, 70]

这导致以下结果:

[10, 20, 30, [1, 2, 3], 50, 60, 70]

请注意,列表l本身已作为单个元素添加,但我真正想要的是将l的元素单独添加到目标列表中,如下所示:

[10, 20, 30, 1, 2, 3, 50, 60, 70]

2 个答案:

答案 0 :(得分:0)

从Python 3.5开始(参见https://www.python.org/downloads/release/python-350/,PEP448),这可以使用Python的unpack运算符完成,该运算符在列表之前是星号:

l = [1, 2, 3]
n = [10, 20, 30, *l, 50, 60, 70]

结果是:

[10, 20, 30, 1, 2, 3, 50, 60, 70]

答案 1 :(得分:0)

这适用于任何地方的l

from itertools import chain   
for i in n:
   if isinstance(i, list):
      b+=list(chain(i))
   else:
      b+=[i]