簡體   English   中英

如何在Python中將元組轉換為字符串?

[英]How to convert a tuple to a string in Python?

在MySQL select語句之后,我留下以下內容:

set([('1@a.com',), ('2@b.net',), ('3@c.com',), ('4@d.com',), ('5@e.com',), ('6@f.net',), ('7@h.net',), ('8@g.com',)])

我想擁有的是一個

emaillist = "\n".join(queryresult)

到最后,有一個字符串:

1@a.com
2@b.net
3@c.com
etc

將這個嵌套元組轉換為字符串的正確方法是什么?

只要您確定每個元組只有一個元素:

'\n'.join(elem[0] for elem in queryresult)

試試看,看看

>>> something=set([('1@a.com',), ('2@b.net',), ('3@c.com',), ('4@d.com',), ('5@e.com',), ('6@f.net',), ('7@h.net',), ('8@g.com',)])
>>> print '\n'.join(''.join(s) for s in something)
6@f.net
7@h.net
2@b.net
1@a.com
8@g.com
5@e.com
4@d.com
3@c.com

注意,join只能用於字符串,但是set的項目是元組。 要使連接起作用,必須迭代集合以將每個項目轉換為字符串。 最后一旦完成,你可以按照你的心願方式加入他們

在旁注。 一種環繞的做法:-)

>>> print "\n".join(re.findall("\'(.*?)\'",pprint.pformat(something)))
1@a.com
2@b.net
3@c.com
4@d.com
5@e.com
6@f.net
7@h.net
8@g.com

列表理解沿線

[item[0] for item in queryresult]

應該有所幫助 例如,

emaillist = "\n".join([item[0] for item in queryresult])

但是,這會對queryresult的類型和結構做出強有力的假設。


編輯

執行此操作時,生成器表達式更好:

emaillist = "\n".join(item[0] for item in queryresult)

感謝@delnan的更新

new = '\n'.join(x[0] for x in old)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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