2012-05-11 42 views
2

我从以下获得好结果,但是如何从元组中提取数据?换句话说,我如何清理数据?如何将元组数据提取为单元素格式

这是从数据库中的数据,我跑了出去。

>>> policy_id = ((2309L,), (118L,), (94L,)) 
>>> for i in policy_id: 
     print i 


(2309L,) 
(118L,) 
(94L,) 

但我作为想要的结果:

2309 
118 
94 
+1

下面给出的答案应该能够弄清楚如何做到“下一个我想要的结果是” – gefei

回答

10
policy_id = ((2309L,), (118L,), (94L,)) 
for i in policy_id: 
    print i[0] 
3
>>> from itertools import chain 
>>> policy_id = ((2309L,), (118L,), (94L,)) 
>>> for i in chain.from_iterable(policy_id): 
     print i 


2309 
118 
94 
2
print '\n'.join(str(x[0]) for x in policy_id) 
+1

不需要使用列表解析'[]'这里使用一个生成器。 –

+0

谢谢。纠正。 – gefei

1
>>> policy_id = ((2309L,), (118L,), (94L,)) 
>>> print("\n".join(str(x[0]) for x in policy_id)) 
2309 
118 
94 
0

其他方式使用地图

map(lambda x: str(x[0]), policy_id)

如果你想新的生产线则

"\n".join(map(lambda x: str(x[0]), policy_id))

1

,我喜欢一个概念,这可能混淆,首先,如下:

Python2

policy_id = ((2309L,), (118L,), (94L,)) 
for i, in policy_id: 
    print i 

Python3

policy_id = ((2309,), (118,), (94,)) 
for i, in policy_id: 
    print(i) 

i的后,解包的单元素的元组的元素(不为元组与多个元件比一个工作)。