2012-01-02 105 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) 
相关问题