2013-06-22 45 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