【发布时间】:2021-03-19 14:09:34
【问题描述】:
我有以下字典:
my_dict = {"user": [1, 2, 3, 4], "sex": ['M', 'F', 'O', 'F'],"timeOfArrival": [4, 1, 3, 8]}
我想找到一种基于timeOfArrival 键对其进行排序的方法,例如以下示例:
my_dict = {"user": [2,3,1,4 ], "sex": ['F', 'O', 'M', 'F' ],"timeOfArrival": [4, 1, 3, 8]}
现在我很难想出一个直截了当的解决方案。
我尝试对timeOfArrival 进行排序,然后我尝试在my_dict 内循环,这样我就可以将值重新排列到它们的“正确”位置,这可行,但如果我有重复的值(即@987654327 @) 我得到了一本比我一开始给的更大的字典。
有没有更好的方法来对我的字典进行排序?
def sortDict(dictionary={},name="test"):
sortedList=sorted(my_dict[name])
dictKeys=list(dictionary.keys())
testDict={}
for i in dictKeys:
testDict[i]=[]
for key in dictKeys:
for item in sortedList:
for pos in range(0,len(dictionary[name])):
if(item==dictionary[name][pos]):
testDict[key].append(dictionary[key][pos])
return testDict
【问题讨论】:
-
这个问题与排序字典无关。这是关于排序和同步多个列表。
-
@jarmod 显然我没有正确解释我的问题。我不需要对多个列表进行排序,我需要根据其中一个列表对字典进行排序。同步比重新定位需要更多时间
-
@MauriceMeyer 我会尝试实现它并回来与您分享结果
-
@MauriceMeyer 它有效,谢谢。
标签: python sorting dictionary