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

การเรียงลำดับลิสต์ภายใน Tuple ใน Python

บทนำ

เมื่อมี tuple ที่แต่ละ element เป็นลิสต์ และต้องการเรียงลำดับแต่ละลิสต์แยกกัน สามารถใช้ sorted() ร่วมกับ generator expression แล้วแปลงกลับเป็น tuple ได้

ตัวอย่างโค้ด

my_tuple = ([4, 55, 100], [44, 55, 67], [7, 86, 0])
print("Tuple เดิม:", my_tuple)

# เรียงแต่ละ sublist แล้วรวมเป็น tuple ใหม่
sorted_tuple = tuple(sorted(sublist) for sublist in my_tuple)

print("หลังเรียงลำดับ:", sorted_tuple)

ผลลัพธ์

Tuple เดิม: ([4, 55, 100], [44, 55, 67], [7, 86, 0])
หลังเรียงลำดับ: ([4, 55, 100], [44, 55, 67], [0, 7, 86])

คำอธิบาย

  • sorted(sublist) เรียงลำดับลิสต์แต่ละอัน (สร้างลิสต์ใหม่)
  • tuple(... for sublist in my_tuple) generator expression สร้าง tuple ใหม่จากผลลัพธ์
  • Tuple เดิมไม่เปลี่ยนแปลง (immutable) แต่ลิสต์ภายในถูกสร้างใหม่

วิธีอื่น: เรียงแบบ in-place (ถ้าต้องการแก้ลิสต์เดิม)

for sublist in my_tuple:
    sublist.sort()  # เรียงลิสต์เดิมโดยตรง
print(my_tuple)

หมายเหตุ: วิธีนี้เปลี่ยนลิสต์ภายใน tuple เดิมโดยตรง