如何将数组元素映射为带连续编号的字典格式?
嘿,我来帮你搞定这个问题~
你现在的代码生成的是元组列表,但我们需要的是一个包含单个字典的列表。问题出在你用d = x,":", counter创建了三元组,而不是构建字典的键值对。下面给你两种可行的实现方式:
方法1:修改原有循环逻辑
我们可以先创建一个空字典,在循环里把每个元素作为键、递增编号作为值存入字典,最后把这个字典放进列表中:
classes = ["banana","mango","apple"] counter = 0 dat = [] result_dict = {} # 初始化空字典 for x in classes: counter += 1 result_dict[x] = counter # 给字典添加键值对 dat.append(result_dict) # 将字典存入列表 print(dat) # 输出:[{"banana": 1, "mango": 2, "apple": 3}]
方法2:用enumerate简化代码
Python的enumerate可以直接帮我们获取元素和对应的索引,设置start=1就能让编号从1开始递增,再配合字典推导式可以一行搞定:
classes = ["banana","mango","apple"] # 字典推导式生成目标字典,再放进列表 dat = [{item: idx for idx, item in enumerate(classes, start=1)}] print(dat) # 输出:[{"banana": 1, "mango": 2, "apple": 3}]
这样就能得到你想要的格式啦~
内容的提问来源于stack exchange,提问作者popeye
相关产品推荐
相关产品推荐

