通过字典将数组映射到序列号

时间:2018-03-17 14:27:02

标签: python arrays list dictionary for-loop

我有一个数组:

classes = ["banana","mango","apple"]

我正在尝试以特定格式打印此数组,其中每个元素必须按特定顺序编号。所需的输出如下:

classes = [{"banana" : 1, "mango" : 2, "apple" : 3}]

我尝试使用for循环如下:

classes = ["banana","mango","apple"]
counter = 0
dat = []
for x in classes:
    counter=counter+1
    d = x,":", counter
    dat.append(d)
print(dat)

打印时打印

[('banana', ':', 1), ('mango', ':', 2), ('apple', ':', 3)]

这远非我的要求。有人可以帮忙吗?

1 个答案:

答案 0 :(得分:2)

您可以enumerate输入列表并通过字典理解进行反向。

classes = ["banana","mango","apple"]

res = {v: k for k, v in enumerate(classes, 1)}

# {'apple': 3, 'banana': 1, 'mango': 2}

似乎没有必要将这个词典放在列表中,就像你想要的输出一样。