如何配对两个列表?

时间:2013-05-06 15:21:21

标签: python list

我是一个Python初学者,所以如果这是一个非常基本的问题我会道歉。

我有两个数据列表,这些数据来自:

with filein as f:
        reader=csv.reader(f)
        xs, ys = zip(*reader)

我想创建一个循环,它将取“xs”中的第一项和“ys”中的第一项并打印出来。然后我想循环回来并重复两个列表中的第二项等等。

我原以为:

for x in xs and y in ys:

for x in xs:
    for y in ys:

但这些似乎都没有给出理想的结果。

3 个答案:

答案 0 :(得分:11)

使用zip函数以及元组解包:

for x, y in zip(xs, ys):
    print x, y

根据您的需要xsys,您可以直接遍历csv.reader

with filein as f:
    reader=csv.reader(f)
    for x, y in reader:
        print x, y

zip(xs, ys)行有效地扭转了您的xs, ys = zip(*reader)行。

答案 1 :(得分:3)

使用zip

>>> L=[1,2,3]
>>> M=[4,5,6]
>>> for a,b in zip(L,M):
...   print(a,b)
...
1 4
2 5
3 6

答案 2 :(得分:0)

对于一行,您可以使用map()lambda()的组合。 Look here if not familiar to this concepts.

但是要小心,你必须使用python 3.x,这样print就是一个函数,可以在lambda表达式中使用。

>>> from __future__ import print_function
>>> l1 = [2,3,4,5]
>>> l2 = [6,7,3,8]
>>> list(map(lambda X: print(X[0],X[1]), list(zip(l1,l2))))

输出

2 6
3 7
4 3
5 8