2012-01-02 87 views
4

MySQL的SELECT語句後,我留下了以下內容:如何將元組轉換爲Python中的字符串?

set([('[email protected]',), ('[email protected]',), ('[email protected]',), ('[email protected]',), ('[email protected]',), ('[email protected]',), ('[email protected]',), ('[email protected]',)]) 

我想有一個

emaillist = "\n".join(queryresult) 

到底,有一個字符串:

[email protected] 
[email protected] 
[email protected] 
etc 

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

+0

嘗試新=「\ n'.join(舊[0]),但得到類型錯誤:‘設置’對象不支持索引 – Cmag 2012-01-02 20:23:16

+0

業報-1假定只有帥哥會回答你的問題。 – thumbtackthief 2013-02-25 02:04:14

回答

15

只要你確定你@delnan此更新每個元組只有一個元素:

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

試試這個,看看

>>> something=set([('[email protected]',), ('[email protected]',), ('[email protected]',), ('[email protected]',), ('[email protected]',), ('[email protected]',), ('[email protected]',), ('[email protected]',)]) 
>>> print '\n'.join(''.join(s) for s in something) 
[email protected] 
[email protected] 
[email protected] 
[email protected] 
[email protected] 
[email protected] 
[email protected] 
[email protected] 

注意,加盟只能在字符串的工作,而是集的項目元組。要使聯接工作,您必須遍歷該集合才能將每個項目轉換爲字符串。最後一次完成後,您可以按照自己的心願加入他們

在側面說明。這樣做:-)

>>> print "\n".join(re.findall("\'(.*?)\'",pprint.pformat(something))) 
[email protected] 
[email protected] 
[email protected] 
[email protected] 
[email protected] 
[email protected] 
[email protected] 
[email protected] 
2

沿

[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) 

感謝

+3

列表理解是不必要的。使它成爲一個生成器表達式並刪除零件,節省內存,字符和讀者的時間:''\ n「.join(queryresult中item的item [0])'。 – delnan 2012-01-02 20:31:18

+0

好點。我會編輯它 – rejj 2012-01-02 20:35:55

1
new = '\n'.join(x[0] for x in old) 
相關問題