在 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]
在 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]
从 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]
这适用l
于任何地方
from itertools import chain
for i in n:
if isinstance(i, list):
b+=list(chain(i))
else:
b+=[i]