Хорошо, что вы задаете этот вопрос, потому что плохая форма злоупотреблять списком
такие понимания. Код, который вы показываете, использует append
, а не для генерации
элементы temp
, но из-за его побочных эффектов. Избегайте побочных эффектов в списке
постижения !
Итак, есть пара вещей, которые вы можете сделать. Во-первых, вы можете использовать
itertools.chain
:
>>> from itertools import chain
>>> list(chain(*mayorPowers))
['germany', 'italy', 'japan', 'russia', 'uk', 'us']
Вместо передачи элементов mayorPowers
в качестве отдельных аргументов chain
, вы также можете использовать itertools.chain.from_iterable
:
>>> list(chain.from_iterable(mayorPowers))
['germany', 'italy', 'japan', 'russia', 'uk', 'us']
Или вы можете использовать extend
:
>>> ww2 = []
>>> for mp in mayorPowers:
... ww2.extend(mp)
...
>>> ww2
['germany', 'italy', 'japan', 'russia', 'uk', 'us']
Или sum
(мне кажется, этот мне нравится больше всего):
>>> sum(mayorPowers, [])
['germany', 'italy', 'japan', 'russia', 'uk', 'us']
Или, быть немного сумасшедшим (использует functools.reduce
и operator.add
),
>>> from functools import reduce
>>> from operator import add
>>> reduce(add, mayorPowers)
['germany', 'italy', 'japan', 'russia', 'uk', 'us']