Добавить элементы списка в конце каждого кортежа списка кортежей - PullRequest
0 голосов
/ 28 января 2019

У меня есть список с некоторыми статическими элементами:

['foo', 1, '', 0]

И у меня есть список кортежей:

[('val1', 9), ('val2', 'val3'), ('val4', '')]

Как добавить элементы списка в концекаждого кортежа из списка кортежей?

Вывод

[
('val1', 9, 'foo', 1, '', 0),
('val2', 'val3', 'foo', 1, '', 0),
('val4', '', 'foo', 1, '', 0)
]

Ответы [ 2 ]

0 голосов
/ 28 января 2019

В python кортежи являются неизменяемыми коллекциями, что означает, что вы не можете изменять элементы в нем.Однако вы можете переназначить переменную на новый кортеж, который можно использовать почти так же, как списки.

list1 = ['foo', 1, '', 0]
list2 = [('val1', 9), ('val2', 'val3'), ('val4', '')]
endlist = []
for x in range(len(list2)):
    endlist += [tuple(list2[x]) + tuple(list1)]
0 голосов
/ 28 января 2019

просто перестройте список кортежей, используя добавление кортежей:

elts = ['foo', 1, '', 0]
t = [('val1', 9), ('val2', 'val3'), ('val4', '')]

result = [e+tuple(elts) for e in t]

результат:

[('val1', 9, 'foo', 1, '', 0),
 ('val2', 'val3', 'foo', 1, '', 0),
 ('val4', '', 'foo', 1, '', 0)]

вы можете установить elts как tuple, чтобы избежать преобразования вцикл:

elts = ['foo', 1, '', 0] # or elts = tuple(elts) if you have an existing list
result = [e+elts for e in t]
...