>>> x = iter([1, 2, 3])
>>> x
<listiterator object at 0x1004ca850>
>>> x.next()
1
>>> x.next()
2
>>> x.next()
3
>>> x.next()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
StopIteration
ITERは、反復可能オブジェクトを受け取り、 イテレータを返す組み込み関数。 next()というメソッドを呼び出すたびに、イテレータは次の要素を返します。それ以上要素がなければ、StopIterationを発生させます。
出典:http://anandology.com/python-practice-book/iterators.html
ジップ()がイテレータですし、任意のデータ構造(リスト、タプル、集合、辞書)にそれを有効にしてください。 zip()(next())を呼び出すたびに、必要なペアを含むタプルが返されます。したがって、これらのタプルをリストに追加する必要があります。
list() functionがそうです。 iterable(あなたのケースでは、反復子関数zip())を受け取り、それをリストとして構築します。
a = ['a', 'b', 'c']
b = ['p', 'q', 'r']
r = list(zip(a, b))
print(r)
>>> [('a', 'p'), ('b', 'q'), ('c', 'r')]
これは同じです:r = [pair for pair in zip(a, b)] # This is a comprehension
しかし、最善のアプローチは、リスト()を使用することです:
a = ['a', 'b', 'c']
b = ['p', 'q', 'r']
r = []
for pair in zip(a, b):
r.append(pair)
print(r)
>>> [('a', 'p'), ('b', 'q'), ('c', 'r')]
、あるいは短いです。これはPythonのイテレータで広く使用されています。
これはあなたに役立つと思います。
'r = list(zip(a、b))'が必要です。 – Psidom
「zip」が返すと書かれている文書は何ですか? "*タプルのイテレータを返す*" - イテレータであり、タプル自体ではありません。 'の典型的な用途はzip'また' '試みる – cdarke