我有一个元组列表,其中所有元组中的元素都是字符串。它可能看起来像这样:
my_list = [('a', 'b', 'c'), ('d', 'e')]
我想把这个转换成字符串,使它看起来像'a b c d e'。我可以使用' '.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'
>>> my_list = [('a', 'b', 'c'), ('d', 'e')]
>>> ' '.join(' '.join(i) for i in my_list)
'a b c d e'
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)
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'
my_list = [('a', 'b', 'c'), ('d', 'e')]
print "".join(["".join(list(x)) for x in my_list])
试试这个。
列表推导式是您问题的最佳一行解决方案 :-
my_list = [('a', 'b', 'c'), ('d', 'e')]
s = ' '.join([elem for item in my_list for elem in item])
str.join
时,应该使用列表推导式而不是生成器表达式。请参见 此答案。 - Ffisegydd