如何初始化一个列表并在一行中用另一个列表扩展它? [复制]
Posted
技术标签:
【中文标题】如何初始化一个列表并在一行中用另一个列表扩展它? [复制]【英文标题】:How to initialize a list and extend it with another list in one line? [duplicate] 【发布时间】:2018-06-13 16:05:05 【问题描述】:这听起来像是一个超级简单的问题,所以我很惊讶搜索没有产生任何结果:我想初始化一个常量列表并用另一个来源的列表扩展它。
这行得通:
remoteList = [2, 3, 4]
myList = [0,1]
myList.extend(remoteList)
这意味着它给出了预期的结果:
myList
[0, 1, 2, 3, 4]
但是,在一行中进行列表初始化是行不通的,myList 未定义:
remoteList = [2, 3, 4]
myList = [0,1].extend(remoteList)
有没有办法在一行中初始化列表并用另一个列表(以pythonic方式)扩展它?为什么我的单行示例不起作用,或者至少产生某种列表?
【问题讨论】:
为什么你认为能够在一行中写一些东西会让它更pythonic? @poke 这是一个很好的问题:在这种情况下,更多的是一次(在一行中)进行初始化,而不是分解它。有一个声明(在一行中)感觉更准确:这是我的清单。 【参考方案1】:您可以在列表文字中使用解包
myList = [0, 1, *remoteList]
这是 Python 3.5 中提供的 unpacking generalizations 的一部分
【讨论】:
没看到【参考方案2】:你不是问+
list concatenation操作吗:
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。
“扩展”和“加号”有一些细微差别:
Concatenating two lists - difference between '+=' and extend()【讨论】:
【参考方案3】:a = [2,3,4]
b = [1,2] + a # will add the other list
print( b)
输出:
[1, 2, 2, 3, 4]
【讨论】:
以上是关于如何初始化一个列表并在一行中用另一个列表扩展它? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
如何将用户输入内容添加到列表和字典中,并在python中用分号(;;;)分隔?
知道应用程序内部的信息作为另一个类中的列表存在,我如何在颤振中使用搜索
jquery悬停列表项并在另一个div中显示图像,列表是动态的
在Django中用数据库值填充下拉列表后如何给它一个特定的值?