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

หาค่าต่ำสุดของแต่ละดัชนีในลิสต์ของลิสต์ใน Python

ในบางปัญหาเราต้องระบุค่าต่ำสุดของแต่ละสมาชิกในลิสต์ แต่ในการดำเนินการเมทริกซ์ เราต้องหาค่าต่ำสุดของแต่ละคอลัมน์ในเมทริกซ์ ซึ่งต้องการหาค่าต่ำสุดจากลิสต์ของลิสต์ เพราะแต่ละคอลัมน์ของเมทริกซ์คือลิสต์ของลิสต์

ใช้ min() และ zip()

ในตัวอย่างด้านล่างเราใช้ min() และ zip() ฟังก์ชัน zip() จัดกลุ่มสมาชิกที่มีดัชนีเดียวกันจากหลายลิสต์เป็นลิสต์เดียว แล้วเราใช้ min() กับผลลัพธ์ของ zip ผ่านลูป for

ตัวอย่าง

List = [[90, 5, 46], [71, 33, 2], [9, 13, 70]]
print("List:", str(List))
# ใช้ min() + zip()
result = [min(index) for index in zip(*List)]
print("ค่าต่ำสุดของแต่ละดัชนีใน List:", str(result))

การรันโค้ดข้างต้นจะให้ผลลัพธ์ดังนี้:

List: [[90, 5, 46], [71, 33, 2], [9, 13, 70]]
minimum of each index in List: [9, 5, 2]

ใช้ map(), min() และ zip()

เราสามารถใช้ map() และ zip() ร่วมกันในแนวทางคล้ายกันได้ ที่นี่เราใช้ผลลัพธ์ของ zip() ให้ min() แทนที่จะใช้ลูป for เราใช้ map() เพื่อวัตถุประสงค์นี้

ตัวอย่าง

List = [[0.5, 2.4, 7], [5.5, 1.9, 3.2], [8, 9.9, 10]]
print("ค่าลิสต์:", str(List))
# ใช้ min() + map() + zip()
result = list(map(min, zip(*List)))
print("ค่าต่ำสุดของแต่ละดัชนีในลิสต์ของลิสต์:", str(result))

การรันโค้ดข้างต้นจะให้ผลลัพธ์ดังนี้:

The list values are: [[0.5, 2.4, 7], [5.5, 1.9, 3.2], [8, 9.9, 10]]
Minimum of each index in list of lists is: [0.5, 1.9, 3.2]

สรุป: ทั้ง zip() กับ list comprehension และ map() ให้ผลลัพธ์เดียวกัน เลือกใช้ตามความชอบ