0

ラベルのリストを取得しました = ('id','price', 'interest','bid','ask','vol') 次に、任意の長さの別のリストがありますが、その値はラベルの順序に一致するリスト サイクル。

つまり、id、price、interest、bid、ask、vol ... の番号のリストを取得して、値がなくなるまで price、interst、bid、ask、vol などを繰り返します。そして、これらの 5 つの数字を繰り返し処理するときに、それらを dict の dict の 5 つのラベルに一致させたいと考えています。これは ID をキーオフし、ID から価格を調べることができます。

したがって、zip は機能しないと思います。

アイデア?

ありがとう!

4

2 に答える 2

1

使用itertools.cycle:

ヘルプitertools.cycle:cycle(iterable) --> cycle object

使い果たされるまで iterable から要素を返します。その後、シーケンスを無期限に繰り返します。

デモ:

>>> from itertools import cycle
>>> labels = ('price', 'interest','bid','ask','vol')
>>> labels_cyc = cycle(labels)
>>> values = range(15)

labels_cyc次に、値リストを使用して対応する値を取得するときに単純に繰り返しますnext(labels_cyc)

>>> for val in values:
...     print val, next(labels_cyc)
...     
0 price
1 interest
2 bid
3 ask
4 vol
5 price
6 interest
7 bid
8 ask
9 vol
10 price
11 interest
12 bid
13 ask
14 vol
于 2013-06-22T17:33:25.193 に答える
1

itertools救助へ!

zip/izipとの両方が必要ですcycle

labels = ('price', 'interest','bid','ask','vol')
list2 = ... # whatever you have

itertools.izip(labels, itertools.cycle(list2))

まあ、zip/izipはあまり必要ないかもしれません。何をするかによります...

于 2013-06-22T17:33:02.147 に答える