У меня есть этот массив:
lst = ['A', 'B', 'C']
Как я могу добавить строку 'D' к каждому элементу и преобразовать каждый набор как кортеж:
lst2= [('A', 'D'), ('B', 'D'), ('C', 'D')]
Вот так, используя понимание списка :
lst = ['A', 'B', 'C'] lst2 = [(x, 'D') for x in lst] lst2 => [('A', 'D'), ('B', 'D'), ('C', 'D')]
Кстати, плохая идея вызывать переменную list, которая конфликтует со встроенной функцией. Я переименовал его.
list
альтернативным решением является использование zip_longest
from itertools import zip_longest list(zip_longest(['A', 'B', 'C'], [], fillvalue='D'))
результат будет:
[('A', 'D'), ('B', 'D'), ('C', 'D')]
Вы можете использовать функцию product():
product()
from itertools import product lst = ['A', 'B', 'C'] list(product(lst, 'D')) # [('A', 'D'), ('B', 'D'), ('C', 'D')]
list1 = ['A', 'B', 'C'] list2 = [] for i in list1: list2.append((i, 'D')) print(list2)
Другой вариант с использованием почтового индекса:
x = ['A', 'B', 'C'] res = list(zip(x,'D'*len(x)))
list2 = [(i, 'D') for i in list]
(кроме того факта, что list - очень плохое имя переменной)