2013-06-22 3 views
0

레이블 = ('id', 'price', 'interest', 'bid', 'ask', 'vol')의 목록이 있습니다. 다음 나는 길이가 될 수있는 다른 목록을 가지고 있지만 그 목록의 값은 레이블의 순서와 일치합니다.레이블 목록과 큰 목록을 사용하여 파이썬에서 사전을 만듭니다.

즉, id, price, interest, bid, ask, vol ...의 숫자 목록을 얻을 것입니다. 가격이 만료, 입찰가, 입찰가, 물가 등을 반복해서 말입니다. 값의 그리고 그 5 개의 숫자를 반복하면서 ID의 키를 누른 다음 ID의 키를 입력하는 dict의 dict 레이블에 5 개의 레이블을 매칭하고 싶습니다.

그래서 저는 우편 번호가 작동하지 않을 것이라고 생각합니다.

아이디어가 있으십니까?

감사합니다.

답변

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 
관련 문제