我有两个名为res_list
和fina_list
的列表。我希望将res_list
的第一个成员作为键并将fina_list
的第一个成员作为值,依此类推。两个列表的长度相同。我已经编写了以下代码,但没有得到答案,请对此提供帮助。
for i in range(0, len(prot_temp)):
dict_dist[res_list_count[i]] = fina_val[i]
print (dict_dist)
res_list = ['LYS','LYS','LYS','LYS','ARG','LYS','LYS','LYS','ARG','LYS','LYS', 'ARG','LYS','ARG','LYS','LYS','ARG','LYS','ARG','ARG','ARG','LYS','LYS','LYS ','LYS','LYS']和fina_val = [['90',30.390685694798005],['91',33.017900690383094],['99',25.200985952934463],['104',19.14776281971343],['113' ,20.365273138359818],['114',21.71637709195528],['135',29.452559922696025],['138',24.335606731700775]]但是当我按照您说的那样做时,我会得到满足的答案:{'LYS':['302 ',25.757180610462783],'ARG':['282',17.118237438474793]}我错了吗?
答案 0 :(得分:3)
您可以使用zip
和dictionary comprehension
。
d = {k:v for k,v in zip(res_list, fina_list)}
而且,正如Peter所指出的,一个人可以做dict(zip(res_list, fina_list)
!
一些更明确的方法(也许使用更少的Python(ic)
方法)
您可以遍历zip使其更加明确。
d = {}
for k,v in zip(res_list, fina_list):
d[k] = v
其中甚至可以遍历列表和索引。
d = {}
for i in range(min(len(res_list), len(fina_list)):
d[res_list[i]] = fina_list[i]
如果您更清楚这些。但是,python的部分优点是它的简洁性,同时又保持了 clarity 。
答案 1 :(得分:2)
dict
的构造函数接受(key, value)
对的序列,
所以您可以使用
dict(zip(res_list, fina_list))