پرسش

چطور می‌توان یک لیست یا تاپل از لیست‌ها یا تاپل‌ها را بر اساس یک ایندکس مشخص مرتب کرد؟

How to sort a list/tuple of lists/tuples by the element at a given index?

یک لیست از تاپل‌ها دارم و می‌خوام این لیست رو بر اساس یک ایندکس خاص در هر تاپل مرتب کنم. مثلاً، اگر لیست من شامل چندین تاپل باشه و من بخوام بر اساس عنصر سوم هر تاپل این لیست رو مرتب کنم، چطور باید این کار رو انجام بدم؟

1403/06/06
پاسخ
رضا دولتی عاشق برنامه نویسی و هوش مصنوعی!
بیوگرافی رضا دولتی

برای مرتب کردن یک لیست از تاپل‌ها بر اساس عنصر در یک ایندکس خاص، می‌تونی از تابع sorted یا متد sort در پایتون استفاده کنی. در اینجا، یه مثال ساده برات می‌زنم:

فرض کن لیست تو به این شکل باشه:

data = [(1, 3, 2), (4, 2, 1), (5, 8, 7)]

و تو می‌خوای بر اساس عنصر سوم هر تاپل (ایندکس 2) این لیست رو مرتب کنی. می‌تونی از کد زیر استفاده کنی:

# Sorting the list of tuples by the element at index 2
sorted_list = sorted(data, key=lambda x: x[2])
# Printing the sorted list
print(sorted_list)

خروجی این کد به شکل زیر میشه:

[(4, 2, 1), (1, 3, 2), (5, 8, 7)]

اینجا از sorted استفاده کردیم که یه لیست جدید مرتب شده رو برمی‌گردونه. اگر بخوای تغییرات رو در همون لیست اصلی اعمال کنی، می‌تونی از متد sort استفاده کنی:

# Sorting the list of tuples in place by the element at index 2
data.sort(key=lambda x: x[2])
# Printing the sorted list
print(data)

با این روش، لیست data به صورت مستقیم مرتب می‌شه

پاسخ: 1403/06/06
آخرین آپدیت: 1403/08/15