我有这个数组:
lst = ['A', 'B', 'C']
我怎么能在每个元素后附加一个字符串'D'并将每个集合转换为元组:
lst2= [('A', 'D'),
('B', 'D'),
('C', 'D')]
像这样,使用list comprehension:
lst = ['A', 'B', 'C']
lst2 = [(x, 'D') for x in lst]
lst2
=> [('A', 'D'), ('B', 'D'), ('C', 'D')]
顺便说一句,调用变量list
是一个坏主意,它与内置函数冲突。我重命名了。
替代解决方案是使用zip_longest
from itertools import zip_longest
list(zip_longest(['A', 'B', 'C'], [], fillvalue='D'))
结果将是:
[('A', 'D'), ('B', 'D'), ('C', 'D')]
list2 = [(i, 'D') for i in list]
(除了list
是一个非常糟糕的变量名称这一事实)
使用zip的另一种选择:
x = ['A', 'B', 'C']
res = list(zip(x,'D'*len(x)))
list1 = ['A', 'B', 'C']
list2 = []
for i in list1:
list2.append((i, 'D'))
print(list2)
你可以使用product()
函数:
from itertools import product
lst = ['A', 'B', 'C']
list(product(lst, 'D'))
# [('A', 'D'), ('B', 'D'), ('C', 'D')]