Подтвердить что ты не робот

Добавить все элементы итерации в список

Есть ли более краткий способ сделать следующее?

t = (1,2,3)
t2 = (4,5)

l.addAll(t)
l.addAll(t2)
print l # [1,2,3,4,5]

Это то, что я пробовал до сих пор: я бы предпочел не пропускать в списке параметры.

def t_add(t,stuff):
    for x in t:
        stuff.append(x)
4b9b3361

Ответ 1

Используйте list.extend(), а не list.append(), чтобы добавить все элементы из итерабельного в список:

l.extend(t)
l.extend(t2)

или

l.extend(t + t2)

или даже:

l += t + t2

где list.__iadd__ (добавление на месте) реализуется как list.extend() под капотом.

Демо:

>>> l = []
>>> t = (1,2,3)
>>> t2 = (4,5)
>>> l += t + t2
>>> l
[1, 2, 3, 4, 5]

Если, однако, вам просто нужно создать список t + t2, тогда list(t + t2) будет самым коротким путем для его доступа.

Ответ 2

stuff.extend - это то, что вы хотите.

t = [1,2,3]
t2 = [4,5]
t.extend(t2)
# [1, 2, 3, 4, 5]

Или вы можете сделать

t += t2