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