2013-08-21 79 views
0

我有列表和元组列表。我试图用三个“列”将它们压缩到列表中。下面是我有:Python:压缩数字和字符串列表元组

splitKeys=[['259', ' 46'], ['281', ' 71'], ['49', ' 13378']] 
data=(2.2217806892532197, 1.1757204348143286, 0.55) 
b=zip(splitKeys, data) 

但是,我得到这个:

[(['259', ' 46'], 2.2217806892532197), (['281', ' 71'], 1.1757204348143286), 
(['49', '13378'], 0.55)] 

,当我真的想这样:

[('259', ' 46', 2.2217806892532197), ('281', ' 71', 1.1757204348143286), 
('49', '13378], 0.55)] 

我已经尝试了一些不同的方法,同时使用maplambda,但我仍然得到了上面提到的不良输出。

想法?

回答

4

你想:

b = [(a, b, c) for (a, b), c in zip(splitKeys, data)] 
+0

oooh多数民众赞成在寻找 – Stephan

+0

谢谢!奇迹般有效。 – Bryan

0

可以暂时用发电机表情荏苒之前解开列表:

b = zip((k[0] for k in splitKeys), (k[1] for k in splitKeys), data) 

输出:

b 
Out[4]: 
[('259', ' 46', 2.2217806892532197), 
('281', ' 71', 1.1757204348143286), 
('49', ' 13378', 0.55)] 
+0

考虑这个作品,我也不会downvoted它...无论是多少'splitKeys'迭代。请解释一下? – Brian