Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

ฉันจะจัดเรียงรายการพจนานุกรมตามค่าของพจนานุกรมใน Python ได้อย่างไร


Python มีฟังก์ชัน sorted() ในตัว ซึ่งจะจัดเรียงองค์ประกอบของ iterable ตามลำดับที่กำหนด

sorted(iterable[, key][, reverse]

พารามิเตอร์ที่สองคือฟังก์ชันที่มีค่าส่งคืนเป็นคีย์สำหรับการเรียงลำดับ พารามิเตอร์ที่สามโดยค่าเริ่มต้นเป็นเท็จ ถ้าเป็นจริง รายการที่เรียงลำดับจะปรากฏในลำดับจากมากไปน้อย

เราใช้ฟังก์ชันแลมบ์ดาซึ่งกำหนดค่าของคีย์พจนานุกรมเป็นคีย์สำหรับฟังก์ชันที่จัดเรียง ตัวอย่างต่อไปนี้จะเรียงลำดับรายการพจนานุกรมตามลำดับค่าที่เกี่ยวข้องกับคีย์จากน้อยไปมาก

>>> dictlist=[{'name':'Rahul', 'age':23, 'marks':60}, {'name':'Anil', 'age':18, 'marks':55}, {'name':'Sunil', 'age':21, 'marks':90}]
>>> newlist=sorted(dictlist, key = lambda k:k['name'])
>>> newlist
[{'name': 'Anil', 'age': 18, 'marks': 55}, {'name': 'Rahul', 'age': 23, 'marks': 60}, {'name': 'Sunil', 'age': 21, 'marks': 90}]
>>> newlist=sorted(dictlist, key = lambda k:k['age'])
>>> newlist
[{'name': 'Anil', 'age': 18, 'marks': 55}, {'name': 'Sunil', 'age': 21, 'marks': 90}, {'name': 'Rahul', 'age': 23, 'marks': 60}]
>>> newlist=sorted(dictlist, key = lambda k:k['marks'], reverse=True)
>>> newlist
[{'name': 'Sunil', 'age': 21, 'marks': 90}, {'name': 'Rahul', 'age': 23, 'marks': 60}, {'name': 'Anil', 'age': 18, 'marks': 55}]