مرتب کردن یک دیکشنری بر اساس مقدار یا value در زبان پایتون

مرتب کردن یک دیکشنری بر اساس مقدار یا value در زبان پایتون

0 ۰
۰
در صورتیکه یک دیکشنری با کلید های رشته ای و مقادیر عددی داشته باشیم، چطور میتونیم دیکشنری را بر اساس فیلد مقدار مرتب کنیم؟

1
0 ۰
در پایتان نسخه 3.6 به بعد میتونید از روش زیر استفاده کنید:

>>> x = {1: 2, 3: 4, 4: 3, 2: 1, 0: 0}
>>> {k: v for k, v in sorted(x.items(), key=lambda item: item[1])}

{0: 0, 2: 1, 1: 2, 4: 3, 3: 4}


توجه کنید که بطور کلی ساختمان داده دیکشینری ترتیب دار نیست یعنی ترتیب گارانتی شده ندارد. ولی با تابعی به نام sorted میشه اینکار رو انجام داد. در نسخه های قبلی پایتان باید لیست مرتب شده در یک لیست یا تاپل (tuple) ریخته بشه تا ترتیب حفظ بشه:

import operator
x = {1: 2, 3: 4, 4: 3, 2: 1, 0: 0}
sorted_x = sorted(x.items(), key=operator.itemgetter(1))
print(sorted_x)


Output:
[(0, 0), (2, 1), (1, 2), (4, 3), (3, 4)]

 

امکان پاسخ دهی به این سوال مسدود شده است


برای ارسال پاسخ برای این سوال باید وارد سایت شوید. برای وارد شدن به سایت نیاز به حساب کاربری سایت سوالات دارید. برای ساختن حساب و یا با وارد شدن با حساب کاربری خود روی دکمه زیر کلیک کنید