0

我有一个标签列表 = ('id','price', 'interest','bid','ask','vol') 然后我有另一个可以是任意长度的列表,但是它的值列表循环以匹配标签的顺序。

换句话说,我将得到一个数字列表:id、price、interest、bid、ask、vol ...重复价格、interst、bid、ask、vol 等等,直到我用完值。当我遍历这 5 个数字时,我想将它们与 dict 的 dict 中的 5 个标签匹配,该 dict 将关闭 ID,然后从 ID 中查找价格。

所以,我不认为拉链会起作用。

想法?

谢谢!

4

2 回答 2

1

itertools救援!

你需要zip/izipcycle.

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

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

好吧,zip/izip可能不是真的需要。取决于你会做什么...

于 2013-06-22T17:33:02.147 回答
1

使用itertools.cycle

帮助itertools.cyclecycle(iterable) --> cycle object

从可迭代对象中返回元素,直到用完为止。然后无限期地重复这个序列。

演示:

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

labels_cyc现在只需在从using获取相应值时迭代值列表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 回答