Just Python
الذهاب إلى القناة على Telegram
🐍Простое изучение Python. Ссылка: @Portal_v_IT Сотрудничество: @oleginc, @tatiana_inc Канал на бирже: telega.in/c/justpython_it РКН: clck.ru/3MnbSc
إظهار المزيد9 884
المشتركون
-124 ساعات
-127 أيام
-5430 أيام
أرشيف المشاركات
9 882
Дополнительная информация по использованию параметра key при сортировке
Перед тем, как сравнивать два элемента списка к ним применялась функция prepare_item, которая меняла знак у стоимости (функция применяется ровно по одному разу к каждому элементу. В результате при одинаковом первом значении сортировка по второму происходила в обратном порядке.
Чтобы не плодить утилитарные функции, вместо использования сторонней функции, того же эффекта можно добиться с использованием лямбда-функции.
#theory // Just Python
9 882
Устойчивость сортировки
Допустим данные нужно отсортировать сначала по столбцу А по возрастанию, затем по столбцу B по убыванию, и наконец по столбцу C снова по возрастанию.
Если данные в столбце B числовые, то при помощи подходящей функции в key можно поменять знак у элементов B, что приведёт к необходимому результату.
А если все данные текстовые? Тут есть такая возможность.
Дело в том, что сортировка sort в Python устойчивая (начиная с Python 2.2), то есть она не меняет порядок «одинаковых» элементов.
Поэтому можно просто отсортировать три раза по разным ключам.
#theory // Just Python
9 882
Методы списка .sort() и .reverse()
У списка (и только у него) есть особые методы .sort() и .reverse() которые делают тоже самое, что соответствующие функции sorted() и reversed(), но при этом:
Меняют сам исходный список, а не генерируют новый.
Возвращают None, а не новый список.
Поддерживают те же дополнительные аргументы;
#theory // Just Python
9 882
Функция reversed()
Функция reversed() применяется для последовательностей и работает по другому.
Возвращает генератор списка, а не сам список.
Если нужно получить не генератор, а готовый список, результат можно обернуть в list() или же вместо reversed() воспользоваться срезом [: :-1].
#theory // Just Python
9 882
Россия на грани самого большого кризиса с начала 90-х.
Ключевая ставка не падает, ипотеку взять невозможно, новый утиль сбор на машины - цены только растут, а зарплаты нет.
Умному человеку очевидно, что нужно готовиться к большим переменам. Большинство окажутся к ним не готовы и потеряют всё. Пережить кризис и заработать на нем поможет канал Сергея Романова.
Он первым предсказал падение доллара в 2025, разгон инфляции и недавнее падение криптовалют
А сейчас по фактам объясняет, к чему нам готовиться в 2026 году, что будет с недвижкой и рублём (спойлер: ничего хорошего), как сохранить свои сбережения и когда действительно закончится кризис.
Подписывайтесь, чтобы быть в курсе всех инсайдов заранее:
@ROMANOV
9 882
Функция sorted()
Мы может использовать функцию sorted() для вывода списка сортированных элементов любой коллекции для последующее обработки или вывода.
Функция не меняет исходную коллекцию, а возвращает новый список из ее элементов. Не зависимо от типа исходной коллекции, вернётся список (list) ее элементов;
9 882
Выход за границы индекса
Обращение по индексу по сути является частным случаем среза, когда мы обращаемся только к одному элементу, а не диапазону. Но есть очень важное отличие в обработке ситуации с отсутствующим элементом с искомым индексом.
Обращение к несуществующему индексу коллекции вызывает ошибку
9 882
Конвертация одного типа коллекции в другой
В зависимости от стоящих задач, один тип коллекции можно конвертировать в другой тип коллекции. Для этого, как правило достаточно передать одну коллекцию в функцию создания другой.
#theory // Just Python
9 882
Именованные срезы
Чтобы избавится от «магических констант», особенно в случае, когда один и тот же срез надо применять многократно, можно задать константы с именованными срезами с пользованием специальной функции slice()()
Примечание: Nonе соответствует опущенному значению по-умолчанию. То есть [:2] становится slice(None, 2), а [1::2] становится slice(1, None, 2).
#theory // Just Python
9 882
Изменение списка срезом (ч.2)
Можно менять части последовательности — это применение выглядит наиболее интересным, так как решает задачу просто и наглядно.
#theory // Just Python
9 882
Изменение списка срезом (ч.1)
Важный момент, на котором не всегда заостряется внимание — с помощью среза можно не только получать копию коллекции, но в случае списка можно также менять значения элементов, удалять и добавлять новые.
Даже если хотим добавить один элемент, необходимо передавать итерируемый объект, иначе будет ошибка TypeError: can only assign an iterable
#theory // Just Python
9 882
Python — язык, с которого легко начать!
Хотите освоить востребованную IT-профессию без сложных формул и лет обучения? Пишите код на python — уже через 5 дней вы создадите своего Telegram-бота, парсер и сайт. А дальше — дорога к удалёнке и первым заказам.
Курс бесплатный: 5 дней практики, консультация с экспертом из «Сбера» и подробный план выхода на фриланс. Никакой базы не нужно — всё объясним с нуля.
Акция действует до конца октября, успей зарегистрироваться.
9 882
Синтаксис среза
Следует помнить, что взяв элемент по индексу или срезом (slice) мы не как не меняем исходную коллекцию, мы просто скопировали ее часть для дальнейшего использования (например добавления в другую коллекцию, вывода на печать, каких-то вычислений). Поскольку сама коллекция не меняется — это применимо как к изменяемым (список) так и к неизменяемым (строка, кортеж) последовательностям.
#theory // Just Python
9 882
Изменение элемента списка по индексу (ч.2)
А вот для списка, если взятие элемента по индексу располагается в левой части выражения, а далее идёт оператор присваивания =, то мы задаём новое значение элементу с этим индексом.
#theory // Just Python
9 882
Изменение элемента списка по индексу (ч.1)
Поскольку кортежи и строки у нас неизменяемые коллекции, то по индексу мы можем только брать элементы, но не менять их.
#theory // Just Python
9 882
Возможная ошибка при обработке элементов
Не меняйте количество элементов коллекции в теле цикла во время итерации по этой же коллекции! — Это порождает не всегда очевидные на первый взгляд ошибки. Чтобы этого избежать подобных побочных эффектов, можно, например, итерировать копию коллекции.
#theory // Just Python
9 882
Тестировщик — простой старт в IT с нуля.
Хотите выйти на удалёнку и зарабатывать от 80 000 ₽ уже через полгода? Профессия тестировщика — это стабильный спрос, высокая зарплата и никаких сложных навыков программирования. Вы проверяете сайты и приложения на баги — просто и увлекательно.
Сейчас — уникальный шанс: мини-курс на 4 дня бесплатно, плюс индивидуальная карьерная консультация в подарок. Вас пошагово проведут от нуля до первого тестового задания.
Жмите на кнопку, проходите короткий тест и забирайте свой билет в IT до 12 октября!
9 882
Функции min(), max(), sum()
Функции min(), max() — поиск минимального и максимального элемента соответственно — работают не только для числовых, но и для строковых значений.
sum() — суммирование всех элементов, если они все числовые.
#theory // Just Python
9 882
Особые методы сравнения множеств (set, frozenset)
set_a.isdisjoint(set_b) — истина, если set_a и set_b не имеют общих элементов.
set_b.issubset(set_a) — если все элементы множества set_b принадлежат множеству set_a, то множество set_b целиком входит в множество set_a и является его подмножеством (set_b — подмножество)
set_a.issuperset(set_b) — соответственно, если условие выше справедливо, то set_a — надмножество
#theory // Just Python
9 882
Особые методы сравнения множеств (set, frozenset)
set_a.isdisjoint(set_b) — истина, если set_a и set_b не имеют общих элементов.
set_b.issubset(set_a) — если все элементы множества set_b принадлежат множеству set_a, то множество set_b целиком входит в множество set_a и является его подмножеством (set_b — подмножество)
set_a.issuperset(set_b) — соответственно, если условие выше справедливо, то set_a — надмножество
#theory // Just Python
