python - 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()))
解决方案
{}
在你的 for 循环中删除
food_list[i] = food
添加{}
周围food
使其成为一个集合,最终food_list
变成这样:
{1: {'food1'}, 2: {'food1'}, 3: {'food1'}, 4: {'food1'}}
因为你需要food_list
字典的值只是字符串。
推荐阅读
- python - 无法在 xlsxwriter 图表图例中设置名称
- javascript - 如何为 Expo 或 React Native 自动切换图像/视频?
- python-3.x - 从 Qt4 更新到 Qt5 后,selectionChanged 和我的 pyQtSlot 之间的 connect() 失败
- f# - 如何定义 F# lambda 函数以返回特定数据类型?
- css - 根据高度而不是宽度调整大小
- php - 带有 UploadId 和 PartNumber 的 AWS getSignedUrl
- c# - ASP.NET Core MVC 从查询中获取模型属性的属性
- java - 改造 API 调用(java)返回空对象
- powershell - SPN 和带有 Kerberos 的远程 Powershell - Hyper-V Vm
- javascript - 有没有办法在 React App 中添加一个不允许空输入的条件?