9

私はPythonの初心者なので、これが非常に基本的な質問である場合は申し訳ありません.

以下から取得したデータのリストが 2 つあります。

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

「xs」の最初の項目と「ys」の最初の項目を取得して出力するループを作成したいと思います。次に、両方のリストの 2 番目の項目についてループバックして繰り返したいと思います。

私は次のようなことを考えていました:

for x in xs and y in ys:

または

for x in xs:
    for y in ys:

しかし、これらのどちらも望ましい結果をもたらさないようです。

4

3 に答える 3

15

zipタプルのアンパックとともに関数を使用します。

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

あなたの場合、必要なものに応じてxs、次のように直接ys繰り返すことができます。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)いました。

于 2013-05-06T15:23:44.137 に答える
6

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
于 2013-05-06T15:24:24.120 に答える