如何从列表中枚举键并获取值而不对键进行硬编码?

sha*_*arp 1 python dictionary python-3.x

如何从列表中枚举键并获取值而无需对键进行硬编码?my_list包含元组,我试图根据列表中元组的位置生成字典。numinenumerate给出数字,如 0, 1,2, ...等。

my_list = [(1,2),(2,3),(4,5),(8,12)]
my_list

di = {'0':[],'1':[]} #manually - how to automate with out specifying keys from enumarate function?
for num,i in enumerate(my_list):
    di['0'].append(i[0])
    di['1'].append(i[0])
print(di) # {'0': [1, 2, 4, 8], '1': [1, 2, 4, 8]}
Run Code Online (Sandbox Code Playgroud)

输出 - 我如何得到这个结果?

di = {'0':[(1,2)],
      '1':[(2,3)],
      '2':[(4,5)],
      '3':[(8,12)]}
Run Code Online (Sandbox Code Playgroud)

Aks*_*gal 6

这是你想要的?

您可以使用enumerate获取列表中每个元组的索引,然后创建一个dict comprehension.

di = {str(i):[t] for i,t in enumerate(my_list)}
di
Run Code Online (Sandbox Code Playgroud)
{'0': [(1, 2)], 
 '1': [(2, 3)], 
 '2': [(4, 5)], 
 '3': [(8, 12)]}
Run Code Online (Sandbox Code Playgroud)