关于python:如何初始化一个列表并用一行中的另一个列表扩展它?

How to initialize a list and extend it with another list in one line?

本问题已经有最佳答案,请猛点这里访问。

这听起来是一个非常简单的问题,所以我很惊讶搜索没有产生任何结果:我想初始化一个常量列表,并用另一个源的列表扩展它。

这工作:

1
2
3
remoteList = [2, 3, 4]
myList = [0,1]
myList.extend(remoteList)

这意味着它给出了预期的结果:

1
2
myList
[0, 1, 2, 3, 4]

但是,在一行中进行列表初始化不起作用,mylist未定义:

1
2
remoteList = [2, 3, 4]
myList = [0,1].extend(remoteList)

有没有一种方法可以初始化列表并在一行中用另一个列表(以Python式方式)扩展它?为什么我的单行示例不起作用,或者至少生成某种列表?


您可以在列表文本中使用解包

1
myList = [0, 1, *remoteList]

这是Python3.5中提供的解包概括的一部分。


你不是在问有关+列表连接操作的问题吗?

1
2
3
4
5
6
In [1]: remoteList = [2, 3, 4]

In [2]: myList = [0, 1] + remoteList

In [3]: myList
Out[3]: [0, 1, 2, 3, 4]

适用于python 2和3。

"扩展"和"加"之间有一些细微的区别:

  • 连接两个列表-"+="和extend()之间的差异


1
2
3
a = [2,3,4]
b = [1,2] + a  # will add the other list
print( b)

输出:

1
[1, 2, 2, 3, 4]