[英]How to convert a list of tuples to string
如何将元组列表转换为字符串。 请看下面的情况
给定格式:
[(a,b),(c,d)]
我得到了:
码:
[i for sub in tagged_in for i in sub]
tagged_in = [(a,b),(c,d)]
#Result = 'a,b,c,d'
所需格式:
'a-b,c-d'
有人可以更新我的代码以获得所需的格式
您可以简单地使用字符串对象的str.join
方法:
>>> v = [("a","b"),("c","d")]
>>> ",".join(map("-".join,v))
'a-b,c-d'
编辑:正如@MSeifert指出的,使用list-comprehension也可以:
>>> v= [("a","b"),("c","d")]
>>> ",".join(["-".join(tup) for tup in v])
'a-b,c-d'
虽然生成器通常是更好的选择,但有些python函数(如str.join
和sorted
)可以更好地与列表配合使用。 如果需要考虑性能,那么在这种情况下,最好使用列表理解:
>>> setup = 'v = [("a","b"),("c","d")]'
>>> repeat('",".join(map("-".join,v))',setup=setup)
[1.0896376324927814, 1.094142565225468, 1.0857250774588465]
>>> repeat('",".join(["-".join(tup) for tup in v])',setup=setup)
[0.8851533486462131, 0.8982919691165989, 0.9031148129180337]
一般而言,我比map
更喜欢理解。
>>> tagged_in = [('a','b'),('c','d')]
>>> ','.join(['-'.join(tup) for tup in tagged_in])
'a-b,c-d'
但是,这完全等同于@JonathanvonSchroeder的答案。 只是使用map
-comprehension而不是map
因为str.join
不管如何str.join
将参数转换为序列-因此这甚至可能更快。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.