【问题标题】:Mapping array to sequential numbers via dictionary [duplicate]通过字典将数组映射到序列号[重复]
【发布时间】:2018-08-26 12:55:26
【问题描述】:

我有一个数组:

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)]

这与我的要求相去甚远。有人可以帮忙吗?

【问题讨论】:

  • 我建议为此目的使用 Python 的字典,而不是组合成一个数组
  • @nj2237 谢谢。我是 python 新手,因此不知道我可以使用两个列表。真的很有帮助。
  • 可以使用 2 个列表,但使用 enumerate 来完成您的精确任务会更有效(如我的回答)。

标签: python arrays list dictionary for-loop


【解决方案1】:

您可以enumerate 输入列表并通过字典推导进行反转。

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

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

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

似乎没有必要将此字典放入列表中,就像您想要的输出一样。

【讨论】:

    猜你喜欢
    • 2016-08-31
    • 2018-07-18
    • 1970-01-01
    • 2016-03-05
    • 2015-10-17
    • 1970-01-01
    • 1970-01-01
    • 2011-01-13
    • 2020-08-22
    相关资源
    最近更新 更多