我有这个复杂的清单:
boundarylist = [('eː', 'n'), ('a', 'k'), ('a', 's')]
我想将boundarylist
转换为字符串,以便将其存储在外部.txt文件中。
boundarystring = ' '.join(boundarylist)
不起作用。输出应该是这样的:
boundarystring = 'eːn ak as' #seperated by \s or \n
我尝试了“”.join(list) if list contains a nested list in python?中建议的这些算法,但是它分别返回'eːnakas'和'eːn a k a s':
import itertools
lst = [['a', 'b'], ['c', 'd']]
''.join(itertools.chain(*lst))
'abcd'
和
''.join(''.join(inner) for inner in outer)
答案 0 :(得分:7)
您需要首先加入列表中的元组
chmod
答案 1 :(得分:2)
一种方法:
boundarylist = [('eː', 'n'), ('a', 'k'), ('a', 's')]
print(' '.join([x+y for x, y in boundarylist]))
# eːn ak as
答案 2 :(得分:-1)
这是我尝试过的方法,依次遍历列表和元组;
boundarylist = [('eː', 'n'), ('a', 'k'), ('a', 's')]
new_list = []
for tuple_ in boundarylist:
for i in tuple_:
new_list.append(i)
boundarylist = ' '.join(new_list)
print(boundarylist)
答案 3 :(得分:-1)
我们可以使用reduce方法。
boundarylist = [('eː', 'n'), ('a', 'k'), ('a', 's')]
print reduce(lambda x,y:"".join(x) + " " + "".join(y) , boundarylist)
输出
'eːn ak as'
在这里,我们实际上是使用.join()
方法加入列表中的元组,然后使用reduce()
函数接受两个参数并将它们与满足您的用例的空格字符连接