簡體   English   中英

如何將元組列表轉換為字符串

[英]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.joinsorted )可以更好地與列表配合使用。 如果需要考慮性能,那么在這種情況下,最好使用列表理解:

>>> 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM