首页 > 解决方案 > Python和排序字典

问题描述

目的是在删除一个元素后显示已排序的字典。我以两种不同的方式编写代码。第 I 部分的代码有效,但第 II 部分的代码无效。

为什么第二部分的代码不能产生正确的结果?

第一部分:

food_dictionary = {}

food1 = input("Enter a food you like: ")
food_dictionary[1]=food1

food2 = input("Enter a food you like: ")
food_dictionary[2]=food2

food3 = input("Enter a food you like: ")
food_dictionary[3]=food3

food4 = input("Enter a food you like: ")
food_dictionary[4]=food4

print(food_dictionary)

dislike=int(input("Which one should be removed: "))

del food_dictionary[dislike]

print(sorted(food_dictionary.values()))

第二部分:

x = [1,2,3,4]

food_list={}

for i in x:
    food = input("Enter the name of a food: ")
    food_list[i]={food}

print(food_list)

print(type(food_list))

ask = int(input("Which one should be removed: "))

del food_list[ask]

print(sorted(food_list.values()))

标签: python

解决方案


{}在你的 for 循环中删除

food_list[i] = food

添加{}周围food使其成为一个集合,最终food_list变成这样:

{1: {'food1'}, 2: {'food1'}, 3: {'food1'}, 4: {'food1'}}

因为你需要food_list字典的值只是字符串。


推荐阅读