将列表元素添加到"Mega List"

Fed*_*rer 0 python list

假设我有一个majorPowers包含这两个列表的名单:

axis=["germany","italy","japan"]
allies=["russia","uk","us"]
Run Code Online (Sandbox Code Playgroud)

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

>>> temp = []
>>> temp = [ww2.append(t) for t in majorPowers]
>>>ww2
[['germany','italy','japan'],['russia','uk','us']]
Run Code Online (Sandbox Code Playgroud)

如何调整此值以不使用temp和插入单个元素ww2而不是列表本身(axisallied).

此外,新的大型名单本身会被归类为一个全面的清单,还是制作它的过程?

编辑:

请注意我不想这样做:

for a in list1:
    for b in a:
        c.append(b)
Run Code Online (Sandbox Code Playgroud)

@美国洛特.我理解你的观点.然而,我正在尝试学习Python中的一些技巧,而不是我通常做的事情的标准方法.这只是为了让我更多地了解Python!

Ste*_*202 5

你问这个问题是好的,因为滥用这样的列表理解是不好的形式.您展示的代码使用的append不是生成元素temp,而是因为它的副作用.避免列表推导中的副作用!

所以,你可以做几件事.首先,您可以使用 itertools.chain:

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

您也可以使用以下方法,而不是将mayorPowers各个参数的元素传递给:chainitertools.chain.from_iterable

>>> list(chain.from_iterable(mayorPowers))
['germany', 'italy', 'japan', 'russia', 'uk', 'us']
Run Code Online (Sandbox Code Playgroud)

或者您可以使用extend:

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

或者sum(我想我最喜欢这个):

>>> sum(mayorPowers, [])
['germany', 'italy', 'japan', 'russia', 'uk', 'us']
Run Code Online (Sandbox Code Playgroud)

或者,有点疯狂(使用functools.reduceoperator.add),

>>> from functools import reduce
>>> from operator import add
>>> reduce(add, mayorPowers)
['germany', 'italy', 'japan', 'russia', 'uk', 'us']
Run Code Online (Sandbox Code Playgroud)