如何在python中对字典进行排序
这是我的问题。我知道了如何在python中对字典进行排序,python,sorting,dictionary,Python,Sorting,Dictionary,这是我的问题。我知道了 {'Ciaran Johnson': {'PB': 58.2, 'Gender': 'M', 'Age': 6, 'Event': 'IM', 'Name': 'Ciaran Johnson'}, 'Joan Pine': {'PB': 44.0, 'Gender': 'F',
{'Ciaran Johnson': {'PB': 58.2,
'Gender': 'M',
'Age': 6,
'Event': 'IM',
'Name': 'Ciaran Johnson'},
'Joan Pine': {'PB': 44.0,
'Gender': 'F',
'Age': 6,
'Event': 'FS',
'Name': 'Joan Pine'},
'Eric Idle': {'PB': 57.2,
'Gender': 'M',
'Age': 6,
'Event': 'IM',
'Name': 'Eric Idle'},
'Kirsty Laing': {'PB': 58.2,
'Gender': 'F',
'Age': 6,
'Event': 'IM',
'Name': 'Kirsty Laing'}}
我必须先按性别排序,然后按事件和最后时间排序(PB-最快的排序)你不能用Python对字典排序,它们天生就是无序的
但是,您可以创建一个列表,然后使用该列表以伪顺序的方式访问元素。您不能在Python中对字典排序,因为它们本质上是无序的 但是,您可以创建一个列表,然后使用该列表以伪顺序访问元素。试试这个
>>> for k,v in sorted(spam.items(),key=lambda k:(k[1]['Gender'],k[1]['Age'],k[1]['PB'])):
print(k,v)
Joan Pine {'PB': 44.0, 'Gender': 'F', 'Age': 6, 'Event': 'FS', 'Name': 'Joan Pine'}
Kirsty Laing {'PB': 58.2, 'Gender': 'F', 'Age': 6, 'Event': 'IM', 'Name': 'Kirsty Laing'}
Eric Idle {'PB': 57.2, 'Gender': 'M', 'Age': 6, 'Event': 'IM', 'Name': 'Eric Idle'}
Ciaran Johnson {'PB': 58.2, 'Gender': 'M', 'Age': 6, 'Event': 'IM', 'Name': 'Ciaran Johnson'}
>>>
试试这个
>>> for k,v in sorted(spam.items(),key=lambda k:(k[1]['Gender'],k[1]['Age'],k[1]['PB'])):
print(k,v)
Joan Pine {'PB': 44.0, 'Gender': 'F', 'Age': 6, 'Event': 'FS', 'Name': 'Joan Pine'}
Kirsty Laing {'PB': 58.2, 'Gender': 'F', 'Age': 6, 'Event': 'IM', 'Name': 'Kirsty Laing'}
Eric Idle {'PB': 57.2, 'Gender': 'M', 'Age': 6, 'Event': 'IM', 'Name': 'Eric Idle'}
Ciaran Johnson {'PB': 58.2, 'Gender': 'M', 'Age': 6, 'Event': 'IM', 'Name': 'Ciaran Johnson'}
>>>
我有这个[dict
],我必须对它进行排序
由于标准词典是无序的,因此不能对dict进行排序。但是,您可以使用:
我有这个[dict
],我必须对它进行排序
由于标准词典是无序的,因此不能对dict进行排序。但是,您可以使用:
... 你试过什么?你知道用python不能对词汇表进行排序吗?。。。你试过什么?您知道用python不能对词汇表进行排序吗?