1. ホーム
  2. python

[解決済み] PythonでZipリスト

2022-04-20 07:46:37

質問

私はリストを zip する方法を学ぼうとしています。この目的のために、私はプログラムを持っていて、ある地点で次のことをします。

x1, x2, x3 = stuff.calculations(withdataa)

これで3つのリストが出来上がりました。 x1 , x2 および x3 であり、それぞれは例えば20のサイズである。

では、そうします。

zipall = zip(x1, x2, x3)

ところが、そうすると

print "len of zipall %s" % len(zipall)

20を取得しましたが、これは私が期待したものではありません。私は3個と予想していました。何か根本的に間違っているような気がします。

解決方法は?

あなたが zip() 20個の要素を持つ3つのリストをまとめると、20個の要素を持つ結果になります。各要素は3タプルです。

ご自分の目で確かめてください。

In [1]: a = b = c = range(20)

In [2]: zip(a, b, c)
Out[2]: 
[(0, 0, 0),
 (1, 1, 1),
 ...
 (17, 17, 17),
 (18, 18, 18),
 (19, 19, 19)]

各タプルの要素の数を調べるには、最初の要素の長さを調べればよい。

In [3]: result = zip(a, b, c)

In [4]: len(result[0])
Out[4]: 3

もちろん、リストが最初から空であれば、これはうまくいきません。