names = ['vol0','CCBU','ICBU','AliGroup',.....]
value_list=['$1','$2','$3','$4','$5','$6',.......]
我需要的結果是:Python列表分組
result = {vol0:['$1','$2'],CCBU:['$3','$4'],ICBU:['$5','$6'],.....}
names = ['vol0','CCBU','ICBU','AliGroup',.....]
value_list=['$1','$2','$3','$4','$5','$6',.......]
我需要的結果是:Python列表分組
result = {vol0:['$1','$2'],CCBU:['$3','$4'],ICBU:['$5','$6'],.....}
這是一種方式,你可以做到這一點
value_list=['$1','$2','$3','$4','$5','$6']
names = ['vol0','CCBU','ICBU','AliGroup']
it=iter(value_list)
result=dict((name,[it.next(),it.next()]) for name in names)
result
{'ICBU': ['$5', '$6'], 'vol0': ['$1', '$2'], 'CCBU': ['$3', '$4']}
注意***正如我理解您的問題聲明,您灣不要將value_list的連續元素作爲列表分配給字典,其中的關鍵字將以相同順序存在。 iter會返回一個迭代器,您可以使用它迭代名稱列表。 next方法從迭代列表中檢索下一個元素。其餘部分很簡單,創建一個字典理解,這些鍵遍歷名稱和通過迭代器進行兩次連續迭代生成的值列表。
快速準確:) :) – Edward 2011-12-23 15:20:27
有可能是一個更簡單的方法,但是:
vals_per_name=2
result={}
for i in range(len(value_list)/vals_per_name):
result[names[i]]=value_list[vals_per_name*i:vals_per_name*(i+1)]
應該做你想要什麼。
快速準確:) thks – Edward 2011-12-23 15:24:41
使用四個空格而不是反引號來縮進代碼塊。 – 2011-12-23 13:34:00
最後一句話是關於什麼的? – 2011-12-23 13:35:53