2013-06-22 39 views
0

我得到了标签列表('id','price','interest','bid','ask','vol') 然后我有另一个列表可以是任何长度,但是,该列表的值循环匹配标签的顺序。使用标签列表和更大的列表在Python中创建字典

换句话说,我会得到一个数字清单:身份证,价格,利息,出价,要求,卷......重复价格,国际标书,出价,问卷,等等,直到我用完值。 当我遍历这5个数字时,我想将它们与一个字典中的5个标签匹配,这个字典将关闭ID,然后从ID开始,我可以查找价格。

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

想法?

谢谢!

回答

1

itertools来救援!

您需要zip/izipcycle

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

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

好,zip/izip也许是不是真的需要。要看你会做什么?

1

使用itertools.cycle

帮助上itertools.cycle:直到它耗尽从迭代cycle(iterable) --> cycle object

返回元素。然后无限期地重复 该序列。

演示:

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

现在只需迭代值列表在使用next(labels_cyc)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