2011-02-15 148 views
0

与Python结合名单我有两个列表:使用两个列表

f= ['A', 'A'] 
d = [(2096, 222, 2640), (1494, 479, 1285)] 

我想要的清单!

LL = [('A', 2096, 222, 2640), ('A', 1494, 479, 1285)] 

我亲近 DIC =拉链(F,d)

但这给我这个:

[('A', (2096, 222, 2640)), ('A', (1494, 479, 1285))] 

?我怎样才能LL?

回答

4

尝试:

LL = [ (x,) + y for x, y in zip(f, d) ] 

此遍历旋绕阵列,并将该元组到该元组外部的字符串(由创建一个新的元组,因为元组是不可变的)。

1

zip命令确实,随着字典:

>>>dict(zip([1,2,3],[1,2,3])) 
{1:1,2:2,3:3} 
+0

我不想要字典。 – Merlin 2011-02-15 22:49:55

+0

糟糕。我没有仔细阅读它的要求。抱歉。 – 2011-02-15 22:51:18

0
[(x,) + y for x,y in zip(f, d)] 
1

您还可以map()代替zip()

LL = map(lambda x,y:(x,)+y, f, d) 

(x,)做到这相当于tuple(x)

LL = map(lambda x,y:tuple(x)+y, f, d) 
0

其实你有一个字符串列表和元组的列表。元组是不可变的,所以你将不得不重构每个元组。

只有2项,你可以尝试:

[tuple(f[0])+d[0], tuple(f[1])+d[1]] 

对于项目的N个寻找“列表理解”,例如这里:http://docs.python.org/tutorial/datastructures.html或建立他们使用一个循环,如果这是更容易理解。