names = ['vol0','CCBU','ICBU','AliGroup',.....]
value_list=['$1','$2','$3','$4','$5','$6',.......]
我需要的是:
result = {vol0:['$1','$2'],CCBU:['$3','$4'],ICBU:['$5','$6'],.....}
答案 0 :(得分:1)
这是你可以做到的一种方式
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方法从迭代列表中检索下一个元素。其余的很简单,创建一个字典理解,密钥迭代名称和迭代器的两次连续迭代生成的值列表。
答案 1 :(得分:1)
可能有一种更简单的方法,但是:
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)]
应该做你想做的事。