Форум сайта python.su
Есть список N. Нужно с помощью функции sorted() вывести список в обратном алфавитном порядке без изменения порядка исходного списка.
Офлайн
1. идем в документацию питона, находим функцию sorted, нас интересуют два аргумента. Первый позволяет задать функцию определяющую вес элемента при сортировке, второй - порядок сортировки
2. используя функцию enumerate создаем список из кортежей, где первый элемент - индекс, а второй исходный элемент заданного списка
3. сортируем созданный список используя в качестве функции веса индекс элемента
4. мапим результат оставляя только второй элемент кортежа
Отредактировано FishHook (Июнь 22, 2022 18:45:57)
Офлайн
FishHookЯ только начал изучать Python, по этому для меня это решение сложно и не совсем понятное. Но всё равно спасибо.
1. идем в документацию питона, находим функцию sorted, нас интересуют два аргумента. Первый позволяет задать функцию определяющую вес элемента при сортировке, второй - порядок сортировки2. использую функцию enumerate создаем список из кортежей, где первый элемент - индекс, а второй исходный элемент заданного списка3. сортируем созданный список используя в качестве функции веса индекс элемента4. мапим результат оставляя только второй элемент кортежа
Офлайн
Vyacheslav_Ryannelну так и скажите своему преподавателю, что задача для вас сложна и вы не можете её решить самостоятельно даже после того, как вам дали готовый алгоритм решения
Я только начал изучать Python, по этому для меня это решение сложно и не совсем понятное. Но всё равно спасибо.
Офлайн
FishHookЯ изучаю по книге.
Офлайн
Vyacheslav_Ryannel
Окей, я вам сейчас дам готовое решение. Но оно вам хоть как-то поможет в изучении? Если вы сами не можете решить, что вам даст мой код?
если я правильно понял задание
l = [1, 4, 5, 1, 0, 9]
print([x[1] for x in sorted(enumerate(l), key=lambda i: i[0], reverse=True)])
Офлайн
FishHookНа данный момент нет.
Vyacheslav_RyannelОкей, я вам сейчас дам готовое решение. Но оно вам хоть как-то поможет в изучении? Если вы сами не можете решить, что вам даст мой код?если я правильно понял задание
Офлайн
Учитывая ваш уровень - ворос скорее всего не на умение разбираться в тонкостях,
а на работу с переменными и методами для закрепления
По этому я покажу вам пошагово
my_list = [1, 5, 10, 2, 4, 3] # Далее, согласно тому что sort() изменяет рабочий список, нам нужно создать копию с которой # мы будем работать, методов есть несколько, выберем любой # my_sorted_list = my_list.copy() # my_sorted_list = my_list[:] my_sorted_list = list(my_list) my_sorted_list.sort() # Сортируем в обычном порядке print(f"Sorted list:\n{my_sorted_list}") my_sorted_list.reverse() # Делаем реверс после сортировки print(f"Sorted list:\n{my_sorted_list}") print(f"Original list:\n{my_list}") # Проверяем что основной список не изменился
Офлайн
ZerGСпасибо!
Учитывая ваш уровень - ворос скорее всего не на умение разбираться в тонкостях,а на работу с переменными и методами для закрепления По этому я покажу вам пошагово
Офлайн
Vyacheslav_Ryannel
Есть список N. Нужно с помощью функции sorted() вывести список в обратном алфавитном порядке без изменения порядка исходного списка.
>>> lst = ['aaa', 'bbb', 'ddd', 'ccc', 'bbb', 'aaa', 'ddd', 'ccc'] >>> >>> out = sorted(lst, reverse=True) >>> lst ['aaa', 'bbb', 'ddd', 'ccc', 'bbb', 'aaa', 'ddd', 'ccc'] >>> out ['ddd', 'ddd', 'ccc', 'ccc', 'bbb', 'bbb', 'aaa', 'aaa'] >>>
ZerGА где там функция sorted(), указанная в задании как обязательная?
По этому я покажу вам пошагово
Отредактировано py.user.next (Июнь 22, 2022 21:15:21)
Офлайн