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] |