ตัวอย่าง
โค้ดด้านล่างสาธิตการใช้ 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 ตามสมาชิกเดิม
แสดงผลลัพธ์