我正在尝试使用python将列表列表转换为单个字符串,并且我不想使用任何我想在Python中使用lambda但不能获得所需结果的循环。 这是我的代码:
#!/usr/bin/python
import sys
import math
from functools import reduce
def collapse(L):
list = lambda L: [item for sublist in L for item in sublist]
#sum(L, [])
#print('"',*list,sep=' ')
#whole_string = ''.join(list).replace(' ')
l=[ ["I","am"], ["trying", "to", "convert"], ["listoflist", "intoastring."]]
collapse(l)
print(*l,sep='')
我想要这样的输出"我正在尝试将listoflist转换为字符串。"
答案 0 :(得分:2)
看起来你错误地理解了字符串操作的使用,因为它们的 none 就地工作。原始字符串未已修改,因为字符串是不可变的。您需要让函数返回一个值,然后将返回值赋回原始值。
以下是使用itertools.chain
的解决方案(你也可以采用其他方式,这只是简洁的):
from itertools import chain
def collapse(lst):
return ' ' .join(chain.from_iterable(lst))
out = collapse([["I","am"], ["trying", "to", "convert"], ["listoflist", "intoastring."]])
print(out)
'I am trying to convert listoflist intoastring.'
答案 1 :(得分:-2)
试试这个:
>>> l=[ ["I","am"], ["trying", "to", "convert"], ["listoflist", "intoastring."]]
>>>
>>> ' '.join([data for ele in l for data in ele])
'I am trying to convert listoflist intoastring.'
它为我工作