首页 > 解决方案 > 从两个列表创建 dict,具有 1:2 键:值关系

问题描述

如何从以下列表中创建字典,len(keys_list) = 12, len(values_list) = 24

keys_list = ['Al','Bb','Ch','Da','Ev','Fr','Gi','Ht','Ia','Jh','Kd','Ly']
values_list = [i for i in 'VRCGVVRVCGGCCGVRGCVCGCGV']

所以我的输出['Al':'VR' or ('V','R') or ['V','R']......]无论哪种方式都很好。我尝试了一些变体zip();并到达了他们使用的这个帖子zip_longest

import itertools
for i in itertools.zip_longest(keys_list,values_list):
    print (i)

我更喜欢不必导入模块。

标签: python-3.xdictionaryziplist-comprehension

解决方案


keys_list = ['Al','Bb','Ch','Da','Ev','Fr','Gi','Ht','Ia','Jh','Kd','Ly']
values_list = [i for i in 'VRCGVVRVCGGCCGVRGCVCGCGV']

grouped_values = [values_list[i] + values_list[i+1] for i in range(len(values_list) - 1)]
d = {k :v for k,v in zip(keys_list, grouped_values)}
print(d)

输出

{'Al': 'VR', 'Bb': 'RC', 'Ch': 'CG', 'Da': 'GV', 'Ev': 'VV', 'Fr': 'VR', 'Gi': 'RV', 'Ht': 'VC', 'Ia': 'CG', 'Jh': 'GG', 'Kd': 'GC', 'Ly': 'CC'}

推荐阅读