|
@@ -0,0 +1,64 @@
|
|
|
+
|
|
|
+'''
|
|
|
+sorted(iterable, key=None, reverse=False)
|
|
|
+
|
|
|
+Не пусть с методом списка .sort() - этот метод меняет сам список.
|
|
|
+
|
|
|
+
|
|
|
+Это чистая функция возвращает новый список.
|
|
|
+'''
|
|
|
+
|
|
|
+def test_1():
|
|
|
+ my_list = ['123', 12, '5', 3, 53]
|
|
|
+ print(sorted(my_list))
|
|
|
+
|
|
|
+
|
|
|
+def test_2():
|
|
|
+ my_list = [1, 123, 12, 15, 10, 18]
|
|
|
+ print(sorted(my_list, key=lambda x: (-len(str(x)), x)))
|
|
|
+
|
|
|
+
|
|
|
+def test_3():
|
|
|
+ my_list = [
|
|
|
+ (10, 10, 10),
|
|
|
+ (8, 10, 12),
|
|
|
+ (6, 12, 9),
|
|
|
+ (10, 12, 14)
|
|
|
+ ]
|
|
|
+
|
|
|
+ s = sorted(my_list, key=lambda x: (-x[0], -x[2]), reverse=True)
|
|
|
+ print(s[0])
|
|
|
+
|
|
|
+
|
|
|
+def print_results(lst):
|
|
|
+ '''Информация выводится по убыванию оценок, а в случае их равенства
|
|
|
+ предметы должны выводиться в обратном алфавитном порядке без учета регистра.'''
|
|
|
+ sorted_lst = sorted(lst, key=lambda x: (x[1], x[0].lower()), reverse=True)
|
|
|
+ for i in sorted_lst:
|
|
|
+ print(i[0], i[1])
|
|
|
+
|
|
|
+
|
|
|
+def get_sort_lines(lst):
|
|
|
+ 'Сортировка по длине отрезка, затем по координатом первой и второй точки'
|
|
|
+ return sorted(lst, key=lambda x: (abs(x[1] - x[0]), x[0], x[1]))
|
|
|
+
|
|
|
+
|
|
|
+def main():
|
|
|
+ # test_1()
|
|
|
+ # test_2()
|
|
|
+ # test_3()
|
|
|
+
|
|
|
+ # marks = [('English', 88), ('Science', 90), ('Maths', 97), ('Physics', 93), ('History', 82)]
|
|
|
+ # marks = [('English', 88), ('Science', 100), ('Maths', 81), ('Physics', 100), ('History', 82), ('Music', 100)]
|
|
|
+ # marks = [('english', 100), ('Science', 100), ('maths', 100),
|
|
|
+ # ('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))
|
|
|
+
|
|
|
+ # get_sort_lines(lines)
|
|
|
+
|
|
|
+
|
|
|
+if __name__ == '__main__':
|
|
|
+ main()
|