向“大列表”添加列表元素

2024-04-27 04:01:57 发布

您现在位置:Python中文网/ 问答频道 /正文

假设我在某处有一个名为majorPowers的列表,其中包含以下两个列表:

axis=["germany","italy","japan"]
allies=["russia","uk","us"]

我想将这些列表中的每个元素插入到一个新的大列表中。我正在做这个:

^{pr2}$

我如何调整它以不使用temp并将单个元素插入ww2而不是列表本身(axis和{})中。在

另外,新的大名单本身会被归类为一个综合性的名单,还是它的制作过程?在

编辑:

请注意我不想做:

^{3}$

@S.Lott。我理解你的意思。不过,我正在尝试学习Python中的一些技巧,而不是我通常使用的标准方法。这只是为了让我对Python多一点了解!在


Tags: 元素列表tempusuk名单axisgermany
3条回答

尝试扩展

for t in majorPowers: ww2.extend(t)

或者

^{pr2}$

你问这个问题很好,因为误用列表是一种不好的形式 像这样的理解。您显示的代码使用append,而不是生成 是temp的元素,但由于其副作用。避免列表中的副作用 理解!在

所以,有几件事你可以做。首先,你可以使用 ^{}

>>> from itertools import chain
>>> list(chain(*mayorPowers))
['germany', 'italy', 'japan', 'russia', 'uk', 'us']

除了将mayorPowers的元素作为单独的参数传递给chain,还可以使用^{}

^{pr2}$

或者您可以使用^{}

>>> ww2 = []
>>> for mp in mayorPowers:
...     ww2.extend(mp)
...
>>> ww2
['germany', 'italy', 'japan', 'russia', 'uk', 'us']

或者^{}(我想我最喜欢这个):

>>> sum(mayorPowers, [])
['germany', 'italy', 'japan', 'russia', 'uk', 'us']

或者,有点疯狂(使用^{}和{a6})

>>> from functools import reduce
>>> from operator import add
>>> reduce(add, mayorPowers)
['germany', 'italy', 'japan', 'russia', 'uk', 'us']
from itertools import chain
ww2 = list(chain.from_iterable(majorPower))

相关问题 更多 >