Python 插入式词典

Python 插入式词典,python,class,sorting,object,dictionary,Python,Class,Sorting,Object,Dictionary,我需要对包含一组键和值的字典进行排序,键和值都不同,我需要在导出到文件之前通过插入排序对值进行排序 到目前为止,我所能找到的只是人们对多个字典的列表进行排序,其中所有被排序的键都是相同的 我的代码如下: playerName = ['a','b','c','d','e','f','g','h','i','j','k','l','m'] playerScore = [12,15,31,26,94,13,16,12,11,85,70,14,56] player = dict(zip(playerNa

我需要对包含一组键和值的字典进行排序,键和值都不同,我需要在导出到文件之前通过插入排序对值进行排序

到目前为止,我所能找到的只是人们对多个字典的列表进行排序,其中所有被排序的键都是相同的

我的代码如下:

playerName = ['a','b','c','d','e','f','g','h','i','j','k','l','m']
playerScore = [12,15,31,26,94,13,16,12,11,85,70,14,56]
player = dict(zip(playerName, playerScore))

print(player)
我现在如何对其进行排序


谢谢

我认为最好使用playerscore作为键。如果您使用palyerscores作为键,那么您可以获取键并对键进行排序。然后你可以找到最好的得分者和最低的得分者

playerName = ['a','b','c','d','e','f','g','h','i','j','k','l','m']
playerScore = [12,15,31,26,94,13,16,12,11,85,70,14,56]
player = dict(zip(playerScore, playerName))
PList = []
for i in player.keys():
    PList.append(i)
PList.sort()
print(PList)
print(player)

与其使用字典,不如考虑这个:

playerName = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm']
playerScore = [12, 15, 31, 26, 94, 13, 16, 12, 11, 85, 70, 14, 56] 

player = sorted(zip(playerName, playerScore), key=lambda x: x[0])

print(player)
[('a', 12),
 ('b', 15),
 ('c', 31),
 ('d', 26),
 ('e', 94),
 ('f', 13),
 ('g', 16),
 ('h', 12),
 ('i', 11),
 ('j', 85),
 ('k', 70),
 ('l', 14),
 ('m', 56)]
只需调用python内置的
sorted
函数,并将lambda函数作为参数传递,以便它知道排序的依据


如果要构造有序字典,可以使用
collections.orderedict
(python<3.6):

它仍然是一个字典,支持所有
dict
方法:

print(isinstance(player_dict, dict)
True


请注意,python3.6+中的字典在默认情况下是按顺序排列的,因此,只需将一个元组列表从
排序
传递到
dict
,您将得到相同的排序结果。

为什么不简单地使用
集合。OrderedDict
字典的可能重复项是无序的,无法排序。如果您的问题得到回答,则可能会重复,请考虑一下。我可以麻烦你投你的良心来回答这个问题吗?我给你发了一封电子邮件(-):“J.Galt啊……谢谢你让我知道我需要删除这个帖子。谢谢你……@ JohnGalt可能看起来像是独白,但我肯定是在回复评论。”
print(isinstance(player_dict, dict)
True