我正在用Python编写一个体育种子程序。我有它的开始在下面。当我运行程序时,我的状态定位器不会在顶部打印出来。谁能给予我一个提示,为什么它不会排序到顶部?
seeded_players = {
2: {'name': 'George', "highschool": "AHS", "win_rate": 0, "state": "", "regionals": 6 },
3: {'name': 'George', "highschool": "SCHS", "win_rate": 0, "state": "", "regionals": "" },
1: {'name': 'Bob', "highschool": "SHS", "win_rate": 0.4, "state": 1, "regionals": 4 },
}
def state_sorting(request):
# Always sort first in states at the top of list.
for x in seeded_players:
if x["State"] == 1:
x.sort(-1)
else:
None
print(seeded_players)
python3 www.example.com {2: {'name': 'George', 'highschool': 'AHS', 'win_rate': 0, 'state': '', 'regionals': 6}, 3: {'name': 'George', 'highschool': 'SCHS', 'win_rate': 0, 'state': '', 'regionals': ''}, 1: {'name': 'Bob', 'highschool': 'SHS', 'win_rate': 0.4, 'state': 1, 'regionals': 4}}
2条答案
按热度按时间z9gpfhce1#
您没有向我们展示执行此代码的单元测试。
我无法想象你如何调用它而不引发异常:
给出:
你想要这样的东西:
那就很简单了
qgelzfjb2#
我认为这反映了你想做的事情。其中的变化:
seeded_players
做成了一个列表,而不是一个命令。这是存放需要分类的东西的正确方法。state_sorting
改成了一个排序键函数。给定一行,它返回一个“键”,告诉该行应该如何排序。在这种情况下,“state”值是最重要的,其次是“regionals”,然后是“win_rate”。输出: