如何将两个列表配对?

2024-04-26 12:40:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我是一个有点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:

但这两种方法似乎都没有达到预期的效果。


Tags: andcsv数据方法in列表foras
3条回答

对于单行,可以使用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

使用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)线。

使用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

相关问题 更多 >