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

วิธีกำหนดค่าสมาชิกลิสต์ให้เท่ากับลำดับขนาด (Magnitude Order) ใน Python


ตัวอย่าง

โค้ดด้านล่างสาธิตการใช้ set, zip และ list comprehension เพื่อกำหนดค่าแต่ละสมาชิกในลิสต์ให้เท่ากับลำดับขนาดของมัน (ค่าที่น้อยที่สุดได้ 0, ตามลำดับ)

my_list = [91, 42, 27, 39, 24, 45, 53]
print("The list is : ")
print(my_list)
my_ordered_dict = dict(zip(list(set(my_list)), range(len(set(my_list)))))
my_result = [my_ordered_dict[elem] for elem in my_list]
print("The result is: ")
print(my_result)

ผลลัพธ์

The list is : [91, 42, 27, 39, 24, 45, 53]
The result is: [0, 2, 6, 1, 5, 3, 4]

คำอธิบาย

  • กำหนดลิสต์และแสดงผล

  • ใช้ set เพื่อดึงค่าที่ไม่ซ้ำกัน แล้วแปลงเป็นลิสต์และนำไป zip กับ range ของจำนวนค่าที่ไม่ซ้ำกัน

  • แปลงเป็น dictionary เพื่อแมปค่าแต่ละค่ากับลำดับของมัน

  • ใช้ list comprehension สร้างลิสต์ใหม่โดยดึงค่าจาก dictionary ตามสมาชิกเดิม

  • แสดงผลลัพธ์