从Python中的列表创建元组

问题描述 投票:1回答:6

我有这个数组:

lst = ['A', 'B', 'C']

我怎么能在每个元素后附加一个字符串'D'并将每个集合转换为元组:

lst2=  [('A', 'D'),
          ('B', 'D'),
          ('C', 'D')]
python python-3.x nested-lists
6个回答
5
投票

像这样,使用list comprehension

lst  = ['A', 'B', 'C']
lst2 = [(x, 'D') for x in lst]

lst2
=> [('A', 'D'), ('B', 'D'), ('C', 'D')]

顺便说一句,调用变量list是一个坏主意,它与内置函数冲突。我重命名了。


3
投票

替代解决方案是使用zip_longest

from itertools import zip_longest
list(zip_longest(['A', 'B', 'C'], [], fillvalue='D'))

结果将是:

[('A', 'D'), ('B', 'D'), ('C', 'D')]

1
投票
list2 = [(i, 'D') for i in list]

(除了list是一个非常糟糕的变量名称这一事实)


1
投票

使用zip的另一种选择:

x = ['A', 'B', 'C']
res = list(zip(x,'D'*len(x)))

1
投票
list1 = ['A', 'B', 'C']
list2 = []
for i in list1:
    list2.append((i, 'D'))
print(list2)

1
投票

你可以使用product()函数:

from itertools import product

lst = ['A', 'B', 'C']

list(product(lst, 'D'))
# [('A', 'D'), ('B', 'D'), ('C', 'D')]
© www.soinside.com 2019 - 2024. All rights reserved.