如何将元组列表转换为单个字符串

3

我有一个元组列表,其中所有元组中的元素都是字符串。它可能看起来像这样:

my_list = [('a', 'b', 'c'), ('d', 'e')]

我想把这个转换成字符串,使它看起来像'a b c d e'。我可以使用' '.join(...),但我不确定应该使用什么参数。
6个回答

5
您可以将列表展开,然后使用join函数连接元素:
>>> import itertools
>>> ' '.join(itertools.chain(*my_list))
'a b c d e'

或使用列表推导式:

>>> ' '.join([i for sub in my_list for i in sub])
'a b c d e'

2
>>> my_list = [('a', 'b', 'c'), ('d', 'e')]
>>> ' '.join(' '.join(i) for i in my_list)
'a b c d e'

使用 str.join 时,应该使用列表推导式而不是生成器表达式。请参见 此答案 - Ffisegydd

1
你可以使用列表推导式,它将遍历元组,然后遍历每个元组,返回要连接的项。
my_list = [('a', 'b', 'c'), ('d', 'e')]

s = ' '.join([item for tup in my_list for item in tup])

列表推导式等价于:

a = []
for tup in my_list:
    for item in tup:
        a.append(item)

1
my_list = [('a', 'b', 'c'), ('d', 'e')]

L = []

for x in my_list:
    L.extend(x) 

print ' '.join(L)


output:
'a b c d e'

0
my_list = [('a', 'b', 'c'), ('d', 'e')]
print "".join(["".join(list(x)) for x in my_list])

试试这个。


1
在内连接中,将元组转换为列表是不必要的。 - Irshad Bhat

0

列表推导式是您问题的最佳一行解决方案 :-

my_list = [('a', 'b', 'c'), ('d', 'e')]
s = ' '.join([elem for item in my_list for elem in item])

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接