python - 根据字典排序列表(初学者)
问题描述
我有以下列表:
listofanimals = ['Dog', 'Cat', 'Frog', 'Tiger', 'Sheep', 'Lion']
我想根据字典对这个列表进行排序:
score_card = {0: 'Sheep', 1: 'Dog', 2: 'Cat', 3: 'Tiger', 4: 'Frog', 5: 'Lion'}
其中最终列表的顺序必须是从 0 到 5,即
numberorder = [0, 1, 2, 3, 4, 5]
我想在一个函数中创建它。这就是我所拥有的:
def sorter():
listofanimals = ['Dog', 'Cat', 'Frog', 'Tiger', 'Sheep', 'Lion']
score_card = {0: 'Sheep', 1: 'Dog', 2: 'Cat', 3: 'Tiger', 4: 'Frog', 5: 'Lion'}
numbers = [0, 1, 2, 3, 4, 5]
finallist = []
for i in listofanimals:
print(numbers[listofanimals.index(i)])
q.append(numbers[listofanimals.index(i)])
print(q)
q = sorted(q)
finallist = [score_card[j] for j in q]
return finallist
我不知道如何将动物列表转换为数字,所以我可以对数字进行排序,然后反馈到字典中以获取值,但我就是无法让它工作。任何帮助表示赞赏。
解决方案
反转你的字典
data = {'Sheep':0, 'Dog':1, 'Cat':2, 'Tiger': 3, 'Frog':4, 'Lion':5}
(如果需要,您可以以编程方式反转它,请参阅其他答案)
现在你可以简单地
my_sorted_list = sorted(my_list,key = data.get)
推荐阅读
- python - 在 Django Rest Framework 中处理来自可浏览 API 的 POST 请求查询参数
- python - 其他设备是否可以连接到 jupyter
- babylonjs - 使用 videoTexture 作为 opacityTexture
- python - Keras - model.predict() 返回列表而不是 numpy 数组
- in-app-purchase - 如何验证 Apple 订阅优惠是否已成功兑换给活跃订阅的用户
- google-apps-script - 在时间触发器上创建时间戳?
- c# - 添加/更改新内容后如何保存 JSON 文件
- llvm - 当clang运行链接器时,如何获得clang的路径?
- php - 动态生成的网页可以被机器人抓取和抓取吗?
- python - 从字符串转换为日期时间时如何修复 ValueError 时间日期与格式不匹配