根据列表中的位置将列表转换为python字典

abh*_*610 0 python iteration dictionary list

我有一个这样的列表:

c = ['A','B','C']
Run Code Online (Sandbox Code Playgroud)

我希望它将它转换为dict像对象一样

d = {"alphabets":{"0":"A","1":"B","2":"C"}}
Run Code Online (Sandbox Code Playgroud)

我目前已实现以下代码:

c = ["A","B","C"]
d={}
for i in range(len(c)):
    d.update({"alphabets":{str(i): c[i]}})
print d
Run Code Online (Sandbox Code Playgroud)

但这给出了输出{'alphabets': {'2': 'C'}}.有谁知道如何处理这个bug?

The*_*nse 5

那是因为你正在更新字典.

警告:

我用过普通字典.如果你愿意的话,你可以使用有序词典.

码:

c = ["A","B","C"]
d={"alphabets":{}}
for i,v in enumerate(c):
    d["alphabets"][str(i)]=v
print d
Run Code Online (Sandbox Code Playgroud)

输出:

{'alphabets': {'1': 'B', '0': 'A', '2': 'C'}}
Run Code Online (Sandbox Code Playgroud)

笔记:

  • 你的程序中的问题是你总是更新alphabets新词典的密钥.
  • 这就是为什么你得到了c:2这是最后一次更新的字典 - 我所做的是用密钥创建一个字典alphabets

  • @ abhi1610很乐意提供帮助.你也可以使用其他方法使用dict理解,它更快但不整齐. (2认同)
  • @ The6thSense dict理解是一种更好的方式,但你的答案对于初学者来说更全面.因此,可以循环迭代以获得更好的演示. (2认同)