python - 用另一本字典排序字典
问题描述
因此,假设我有一个 dic,其中键是玩家,值是游戏数量。
dic1 = {player1: 100,
player2: 4,
player3: 400,
player4: 50
}
假设现在我将对这个 dic 进行排序
dic1_sorted = dict(sorted(dic1.items(), key=lambda item: item[1], reverse=True))
我会得到这个
dic1_sorted = {player3: 400,
player1: 100,
player4: 50,
player2: 4
}
所以假设我有一个新的 dic,其中键是玩家,值是胜率。
dic2 = {player1: 1,
player2: 0.5,
player3: 0.7,
player4: 0.2
dic2_sorted = {player3: 0.7,
player1: 1,
player4: 0.2,
player2: 0.5
}
我怎样才能实现 dic2_sorted,它是由 dic1_sorted 排序的,而不使用 panda 和类似的东西,并且以尽可能有效的方式?
解决方案
在排序时从一个字典中查找另一个字典的键,我在-
这里使用来反转顺序,但reverse=True
可能更可取(我将您的播放器转换为字符串只是为了说明)
dic1_sorted = {"player3": 400,
"player1": 100,
"player4": 50,
"player2": 4
}
dic2 = {"player1": 1,
"player2": 0.5,
"player3": 0.7,
"player4": 0.2}
print(sorted(dic2.items(), key = lambda x: -dic1_sorted[x[0]]))
# [('player3', 0.7), ('player1', 1), ('player4', 0.2), ('player2', 0.5)]
推荐阅读
- c - 当设备驱动程序中的 IP 地址更改时收到通知
- debugging - 在 VSCode 中调试 Rust,库上没有调试符号,但在示例中调试符号
- c# - 在 C# 中解析 JSON 的层
- sql-server - 如何在 SQL Server 中对 concat 进行分组
- regex - Notepad ++ 仅搜索和替换文本 2 个特定行
- python - 使用 Django 向现有 Docker 容器添加/公开端口
- php - wordpress中的PHP CURL连接超时问题
- javascript - javascript中的window.focus()
- ros - Rviz:如何通过代码设置 TopDownOrtho 视图的 X、Y
- sql - 如何在 2 列上旋转