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

จัดเรียงพจนานุกรมตามค่าใน Python

พจนานุกรมเป็นโครงสร้างข้อมูลที่ไม่เรียงลำดับ พวกเขาใช้โครงสร้างการทำแผนที่เพื่อเก็บข้อมูล พจนานุกรมจับคู่คีย์กับค่า โดยสร้างคู่ที่เก็บข้อมูลที่เกี่ยวข้อง

การใช้ Python sorted() วิธี คุณสามารถจัดเรียงเนื้อหาของพจนานุกรมตามค่าได้ ตัวอย่างเช่น หากต้องการจัดอันดับความนิยมของรายการในเมนูกาแฟ คุณสามารถใช้ sorted() ของ Python กระบวนการ. บทแนะนำนี้จะกล่าวถึงวิธีการ sorted() วิธีการทำงานและวิธีการใช้เพื่อจัดเรียงเนื้อหาของพจนานุกรม

Python sorted() ทบทวน

sorted() . ในตัวของ Python สามารถใช้ฟังก์ชันเพื่อจัดเรียงวัตถุที่วนซ้ำได้ เช่น รายการ สิ่งอันดับ และพจนานุกรม ฟังก์ชัน sorted() จะเรียงลำดับรายการของวัตถุ iterable ที่ระบุ และสร้างวัตถุใหม่ด้วยค่าที่จัดเรียงใหม่

นี่คือไวยากรณ์สำหรับ sorted() วิธีการ:

sorted(object, key, reverse)

วิธีการนี้ใช้พารามิเตอร์สามตัว:

  • วัตถุ :วัตถุ iterable ที่คุณต้องการจัดเรียง (จำเป็น)
  • คีย์ :ฟังก์ชันที่ให้คุณดำเนินการจัดเรียงแบบกำหนดเองได้ (ตัวเลือก)
  • ย้อนกลับ :ระบุว่าควรเรียงลำดับวัตถุจากมากไปหาน้อยหรือไม่ (ตัวเลือก)

อย่างที่คุณเห็น object เป็นพารามิเตอร์ที่จำเป็นเท่านั้น หากคุณตัดสินใจที่จะไม่ใช้ตัวเลือก key และ reverse พารามิเตอร์ Python จะเรียงลำดับวัตถุโดยอัตโนมัติจากน้อยไปหามาก

หมายเหตุ:Career Karma เขียนคู่มือฉบับเต็มเกี่ยวกับ sort() และ sorted() วิธีการใน Python หากคุณต้องการเรียนรู้เพิ่มเติมเกี่ยวกับวิธีการนี้และ key โปรดดูบทช่วยสอน Python sort() ของเรา

มาดูตัวอย่างสั้นๆ เพื่อแสดงให้เห็นว่า sorted() วิธีการทำงาน

81% ของผู้เข้าร่วมกล่าวว่าพวกเขารู้สึกมั่นใจมากขึ้นเกี่ยวกับโอกาสในการทำงานด้านเทคโนโลยีหลังจากเข้าร่วม bootcamp จับคู่กับ Bootcamp วันนี้

ผู้สำเร็จการศึกษาจากหลักสูตร bootcamp โดยเฉลี่ยใช้เวลาน้อยกว่าหกเดือนในการเปลี่ยนอาชีพ ตั้งแต่เริ่มต้น bootcamp ไปจนถึงหางานแรก

สมมติว่าเรากำลังเปิดร้านกาแฟและต้องการดึงรายการ Coffee Club เรียงตามตัวอักษร (ภักดี) ลูกค้า. เรามีรายชื่อลูกค้าอยู่แล้ว แต่จะสั่งซื้อตามวันที่สมัคร เราสามารถใช้รหัสต่อไปนี้เพื่อจัดเรียงรายการของเรา:

customers = ['Kaley Fernandez', 'Darius Rowland', 'Isaac Borthwick',  'Alexandria Kidd']

sorted_customers = sorted(customers)

print(sorted_customers)

รหัสของเราจัดเรียง customers อาร์เรย์และส่งกลับค่าต่อไปนี้:

['Alexandria Kidd', 'Darius Rowland', 'Isaac Borthwick', 'Kaley Fernandez']

ในบรรทัดแรกของรหัสของเรา เราประกาศรายชื่อที่เก็บชื่อลูกค้าของเรา รายการนี้เรียกว่า:ลูกค้า จากนั้น เราใช้ sorted() วิธีการเรียงลำดับรายชื่อลูกค้าจากน้อยไปมาก รายการใหม่นี้เรียกว่า:sorted_customers . สุดท้าย เราพิมพ์รายการที่จัดเรียงใหม่ไปยังคอนโซลโดยใช้ print() การทำงาน.

จัดเรียงพจนานุกรมตามค่า

สมมติว่าคุณมีพจนานุกรมและต้องการจัดเรียงตามคู่คีย์-ค่า คุณสามารถทำได้โดยใช้สองฟังก์ชันร่วมกัน:items() และ sorted() .

items() ฟังก์ชั่นช่วยให้คุณดึงรายการในพจนานุกรม เราสามารถใช้ฟังก์ชันนี้ร่วมกับ sorted() ฟังก์ชันและ key . ที่กำหนดเอง พารามิเตอร์เพื่อจัดเรียงพจนานุกรมตามค่า พิจารณาสองตัวอย่างต่อไปนี้

ตัวอย่างที่ 1:เรียงลำดับจากมากไปหาน้อย

กลับไปที่ร้านกาแฟกันเถอะ สมมติว่าเรามีพจนานุกรมที่จัดเก็บรายการต่างๆ ในเมนูกาแฟของเรา รวมทั้งจำนวนสินค้าที่สั่งซื้อในเดือนที่ผ่านมา เราต้องการดูว่ากาแฟที่ได้รับความนิยมมากที่สุดในเดือนที่ผ่านมาคืออะไร เราจึงตัดสินใจจัดเรียงพจนานุกรมตามลำดับค่าจากมากไปน้อย

นี่คือโปรแกรมที่เราใช้ในการจัดเรียงเนื้อหาของพจนานุกรมของเราตามค่า:

orders = {
	'cappuccino': 54,
	'latte': 56,
	'espresso': 72,
	'americano': 48,
	'cortado': 41
}

sort_orders = sorted(orders.items(), key=lambda x: x[1], reverse=True)

for i in sort_orders:
	print(i[0], i[1])

รหัสของเราส่งคืนดังต่อไปนี้:

espresso 72
latte 56
cappuccino 54
americano 48
cortado 41

มีหลายอย่างเกิดขึ้นในโค้ดของเรา เรามาทำลายมันกันเถอะ

ที่จุดเริ่มต้นของรหัสของเรา เรากำหนดพจนานุกรมที่เรียกว่า orders ที่เก็บชื่อกาแฟไว้เป็น กุญแจ และตัวเลขที่ขายเป็น ค่า .

จากนั้น เราใช้ sorted() วิธีการจัดเรียง orders พจนานุกรมตามค่า นี่คือรายละเอียดวิธีที่เราใช้ sorted() วิธีการ:

พารามิเตอร์ ข้อความ คำอธิบาย
วัตถุ orders.items() หมายถึงค่าทั้งหมดในพจนานุกรม "คำสั่งซื้อ" ของเรา หากเราใช้เพียง "คำสั่งซื้อ" เราจะต้องอ้างอิงตำแหน่งดัชนีของรายการเพื่อรับค่าแต่ละรายการ ในขณะที่เราใช้ orders.items() รายการที่ทำซ้ำได้พร้อมกับรายการในรายการจะถูกสร้างขึ้น
คีย์ คีย์=แลมบ์ดา x:x[1] A กลไกการเรียงลำดับ ที่ช่วยให้เราจัดเรียงพจนานุกรมตามค่าได้ นี่คือตัวอย่างของฟังก์ชัน Lambda ซึ่งเป็นฟังก์ชันที่ไม่มีชื่อ
ย้อนกลับ ย้อนกลับ=จริง ระบุว่าเราต้องการจัดเรียงข้อมูลใน จากมากไปหาน้อย

สุดท้าย เราสร้าง for วนซ้ำที่วนซ้ำแต่ละรายการที่สร้างขึ้นใน sort_order . ของเรา เมธอดและพิมพ์ทั้งชื่อคีย์และค่าของมัน เรียงตามลำดับที่เราระบุไว้ใน sort_order ฟังก์ชัน

ตัวอย่างที่ 2:เรียงลำดับจากน้อยไปมาก

ในทำนองเดียวกัน หากเราต้องการค้นหาเครื่องดื่มที่ได้รับความนิยมน้อยที่สุดที่ขายในร้านกาแฟของเรา เราสามารถใช้รหัสเดียวกันกับด้านบน แต่ไม่มี reverse=True พารามิเตอร์. นี่คือตัวอย่างโค้ดสำหรับสิ่งนี้:

orders = {
	'cappuccino': 54,
	'latte': 56,
	'espresso': 72,
	'americano': 48,
	'cortado': 41
}

sort_orders = sorted(orders.items(), key=lambda x: x[1])

for i in sort_orders:
	print(i[0], i[1])

เมื่อเรารันโค้ด ค่าต่อไปนี้จะถูกส่งกลับ:

cortado 41
americano 48
cappuccino 54
latte 56
espresso 72

อย่างที่คุณเห็น รหัสของเราส่งคืนรายการสินค้าที่จัดเรียงจากน้อยไปมาก ตามจำนวนแต่ละรายการที่สั่งซื้อในเดือนที่แล้ว

รายการความเข้าใจ

นอกจากนี้ เราสามารถใช้ list comprehension เพื่อจัดเรียงเนื้อหาพจนานุกรมตามค่าได้ ความเข้าใจรายการเป็นเทคนิคที่กระชับเพื่อสร้างรายการใน Python และสามารถประหยัดพื้นที่ได้หากคุณกำลังสร้างวิธีการจัดเรียงที่ซับซ้อนมากขึ้น

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

orders = {
	'cappuccino': 54,
	'latte': 56,
	'espresso': 72,
	'americano': 48,
	'cortado': 41
}

[print(key, value) for (key, value) in sorted(orders.items(), key=lambda x: x[1])]

เมื่อเรารันโค้ดของเรา การตอบสนองต่อไปนี้จะถูกส่งกลับ:

cortado 41
americano 48
cappuccino 54
latte 56
espresso 72

ผลลัพธ์ของโค้ดของเราเหมือนกับตัวอย่างด้านบนที่เราจัดเรียงเนื้อหาของ orders รายการในลำดับจากน้อยไปมาก แต่แทนที่จะกำหนด sort_orders และสร้าง for . แยกต่างหาก วนซ้ำผ่านรายการที่เรียงลำดับ เราสร้างรายการโดยใช้เทคนิคความเข้าใจรายการ

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

บทสรุป

เมื่อคุณทำงานกับพจนานุกรมใน Python การจัดเรียงพจนานุกรมตามค่าเป็นการดำเนินการทั่วไป sorted() วิธีช่วยให้คุณจัดเรียงชุดข้อมูลตามความต้องการของคุณ

บทช่วยสอนนี้กล่าวถึง โดยให้ตัวอย่าง วิธีใช้ sorted() วิธีการจัดเรียงพจนานุกรมตามค่าใน Python รวมถึงวิธีการใช้ key และ reverse พารามิเตอร์

ตอนนี้คุณก็พร้อมที่จะเริ่มจัดเรียงพจนานุกรมตามค่าต่างๆ อย่าง Python pro แล้ว!