如何初始化一个列表并在一行中用另一个列表扩展它? [复制]

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中用数据库值填充下拉列表后如何给它一个特定的值?

如何将下拉列表选定的数据传递到另一个表并在 asp.Net MVC 中更新该表

一个可扩展列表视图中有 2 个不同的列表视图