|
@@ -4,7 +4,13 @@ sorted(iterable, key=None, reverse=False)
|
|
|
|
|
|
Не пусть с методом списка .sort() - этот метод меняет сам список.
|
|
|
|
|
|
+Для сортировки словаря по значения используется следующий подход:
|
|
|
|
|
|
+
|
|
|
+for name in sorted(heroes, key=heroes.get):
|
|
|
+ print(name, heroes[name])
|
|
|
+
|
|
|
+
|
|
|
Это чистая функция возвращает новый список.
|
|
|
'''
|
|
|
|
|
@@ -43,6 +49,64 @@ def get_sort_lines(lst):
|
|
|
return sorted(lst, key=lambda x: (abs(x[1] - x[0]), x[0], x[1]))
|
|
|
|
|
|
|
|
|
+def print_goods(lst):
|
|
|
+ 'Сортировка словаря по двум критериям'
|
|
|
+ for item in sorted(lst, key=lambda x: (x['color'].lower(), -x['model'])):
|
|
|
+ # print(f'Производитель: {item['make']}, модель: {item['model']}, цвет: {item['color']}')
|
|
|
+ print('Производитель: ', item['make'], ', модель: ', item['model'], ', цвет: ', item['color'], sep='')
|
|
|
+
|
|
|
+
|
|
|
+def print_goods_new(lst):
|
|
|
+ new_lst = [position.split(': ') for position in lst]
|
|
|
+ sorted_lst = sorted(new_lst, key=lambda x: (-float(x[1]), x[0].lower()))
|
|
|
+ for item in sorted_lst:
|
|
|
+ print(f'{float(item[1]):.2f} - {item[0]}')
|
|
|
+
|
|
|
+
|
|
|
+def print_best_and_worst_laureate(dct):
|
|
|
+ new_dict = {}
|
|
|
+ for key, value in dct.items():
|
|
|
+ if value not in new_dict.keys():
|
|
|
+ new_dict[value] = 1
|
|
|
+ else:
|
|
|
+ new_dict[value] += 1
|
|
|
+
|
|
|
+ sorted_list = sorted(new_dict.items(), key=lambda x: -x[1])
|
|
|
+
|
|
|
+ print(sorted_list[0][0], ', ',sorted_list[0][1], sep='')
|
|
|
+ print(sorted_list[-1][0], ', ',sorted_list[-1][1], sep='')
|
|
|
+
|
|
|
+
|
|
|
+def print_order_rating(lst):
|
|
|
+ new_dict = {}
|
|
|
+ for driver in lst:
|
|
|
+ if driver[0] not in new_dict.keys():
|
|
|
+ new_dict[driver[0]] = driver[1]
|
|
|
+ else:
|
|
|
+ new_dict[driver[0]] = (new_dict[driver[0]] + driver[1])/2
|
|
|
+
|
|
|
+ new_list = [[key, value] for key, value in new_dict.items()]
|
|
|
+ new_list = sorted(new_list, key=lambda x: -x[1])
|
|
|
+
|
|
|
+ for item in new_list:
|
|
|
+ print(f'{item[0]} {item[1]}')
|
|
|
+
|
|
|
+
|
|
|
+ print(new_list)
|
|
|
+
|
|
|
+ # sorted_list = sorted(new_dict, key=new_dict.get)
|
|
|
+
|
|
|
+ # print(sorted_list)
|
|
|
+
|
|
|
+ # for item in sorted_list:
|
|
|
+ # print(item)
|
|
|
+
|
|
|
+ # for key, value in new_dict.items():
|
|
|
+ # print(key, value)
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
def main():
|
|
|
# test_1()
|
|
|
# test_2()
|
|
@@ -54,11 +118,68 @@ def main():
|
|
|
# ('Physics', 100), ('history', 100), ('Music', 100)]
|
|
|
# print_results(marks)
|
|
|
|
|
|
- lines = [(5, 6), (5, 4), (1, 0), (0, -1), (1, 2), (2, 1)]
|
|
|
- print(get_sort_lines(lines))
|
|
|
+ # lines = [(5, 6), (5, 4), (1, 0), (0, -1), (1, 2), (2, 1)]
|
|
|
+ # print(get_sort_lines(lines))
|
|
|
|
|
|
# get_sort_lines(lines)
|
|
|
|
|
|
+ """
|
|
|
+ models = [{'make': 'Nokia', 'model': 2, 'color': 'Black'},
|
|
|
+ {'make': 'Mi Max', 'model': 3, 'color': 'red'},
|
|
|
+ {'make': 'Samsung', 'model': 5, 'color': 'Yellow'},
|
|
|
+ {'make': 'Apple', 'model': 10, 'color': 'RED'},
|
|
|
+ {'make': 'Oppo', 'model': 9, 'color': 'Red'},
|
|
|
+ {'make': 'Huawei', 'model': 4, 'color': 'BLACK'},
|
|
|
+ {'make': 'Honor', 'model': 3, 'color': 'black'},
|
|
|
+ {'make': 'Nothing Phone', 'model': 7, 'color': 'Yellow'}]
|
|
|
+
|
|
|
+ print_goods(models)
|
|
|
+ """
|
|
|
+
|
|
|
+ """
|
|
|
+ laureates = {'За лучший фильм': 'Все везде и сразу',
|
|
|
+ 'За лучшую музыку к фильму': 'На Западном фронте без перемен',
|
|
|
+ 'За лучший звук': 'Топ Ган: Мэверик',
|
|
|
+ 'За лучшие визуальные эффекты': 'Аватар: Путь воды',
|
|
|
+ 'За лучший дизайн костюмов': 'Топ Ган: Мэверик',
|
|
|
+ 'За лучшую операторскую работу': 'На Западном фронте без перемен',
|
|
|
+ 'За лучший монтаж': 'Все везде и сразу',
|
|
|
+ 'За лучший оригинальный сценарий': 'Все везде и сразу',
|
|
|
+ 'За лучший фильм на иностранном языке': 'Все везде и сразу', }
|
|
|
+
|
|
|
+ print_best_and_worst_laureate(laureates)
|
|
|
+ """
|
|
|
+
|
|
|
+ drivers = [
|
|
|
+ ('Джек', 2),
|
|
|
+ ('Джек', 3),
|
|
|
+ ('Гермиона', 5),
|
|
|
+ ('Билл', 4),
|
|
|
+ ('Билл', 4),
|
|
|
+ ('Гермиона', 3),
|
|
|
+ ('Джек', 2),
|
|
|
+ ('ЯЯ', 5),
|
|
|
+ ('ФФФ', 5),
|
|
|
+ ('Билл', 4),
|
|
|
+ ('Укк', 4),
|
|
|
+ ('Билл', 3),
|
|
|
+ ('Джек', 2),
|
|
|
+ ('Джек', 2),
|
|
|
+ ('Гермиона', 5),
|
|
|
+ ('Билл', 2),
|
|
|
+ ('ФФФ', 4),
|
|
|
+ ('Билл', 3),
|
|
|
+ ('ФФФ', 3),
|
|
|
+ ('Джек', 2),
|
|
|
+ ('Джек', 1),
|
|
|
+ ('Гермиона', 5),
|
|
|
+ ('Билл', 2),
|
|
|
+ ('Курт', 5),
|
|
|
+ ('Билл', 3),
|
|
|
+ ]
|
|
|
+
|
|
|
+ print_order_rating(drivers)
|
|
|
+
|
|
|
|
|
|
if __name__ == '__main__':
|
|
|
main()
|