Рубрики
Без рубрики

Опытный Pythonista: список понимания

Ибо петли – это вещь! Но если бы вы иногда могли использовать конструкцию, которая гораздо более лаконичной и … Теги с питоном, качеством кода, наукой данных.

Для Петли – это вещь! Но если бы вы иногда могли использовать конструкцию, которая гораздо более лаконичной и эффективной, вы не пойдете на это? Ад Ага!!!

Список понимания дает нам краткий способ создания списков на основе существующих списков.

Чтобы создать новый список номеров из существующего списка, используя для петли конструкция:

Что если я скажу вам, что у нас есть в цикле выше, можно сделать только в одном коде! – Это сила понимания списка. Посмотрите ниже в 2.py :

Структура для кода, написанного в 2.py Выше это [Выходное выражение для Итераторная переменная в итерально] :

  • номер + 3 Выходное выражение – Результат вернулся
  • номер это переменная итератора
  • Числа это итератно

Понимание списка может быть записано на любой иерный объект, как объект диапазона, а не только списки, как ниже:

У нас также есть условные условия в понимании списков, которые помогают фильтровать то, что мы возвращаем – это контролирует, какие элементы из существующего списка возвращаются. Эта условная логика может быть на Итераторная переменная или Выходное выражение Анкет

В 4.py Ниже приведен пример условной логики, используемой в переменной итераторной переменной, где она возвращает только элементы, которые не эквивалентны строке Cisco :

В 4.py Выше, структура написанного кода – [Выходное выражение для Итераторная переменная в итератно Если ПРЕДУПРЕЖДЕНИЕ Выражение]

  • Если Flash – условная логика, которая является Если предикат выражение

Давайте возьмем это дальше, имея вложенные, если предикаты выражения в пределах понимания списка:

В 5.py Выше, он проверяет, если номер num делится на 2, а затем 4, и печатает его, если он удовлетворяет оба условию.

Переход к Кондиционисты на выходном выражении , давайте посмотрим пример ниже:

Структура для кода, написанного в 6.py Выше это [условное на выходе выражения для Итераторная переменная в итерально]

  • Герой, если еще ” – условная логика – выходы герой Если длина струнного героя меньше 8, иначе она выводит пустую строку.

Как и понимание списка, мы также можем иметь Словарь понимание Или даже установить понимание . Это становится довольно интересным, верно?

При понимании наборов вывод, возвращаемый в отличие от понимания списка, не содержит дубликатов. Давайте посмотрим пример в 7.py ниже:

В 7.py , дубликаты не возвращаются. Кроме того, обратите внимание, что такие наборы, как словаря, но в отличие от списков по своей природе неупорядочен – порядок элементов не важен – вот почему o на первом месте в наборе, даже если E первый персонаж в cool_quote Анкет

Говоря о словари, давайте посмотрим пример того, как мы можем использовать понимание словаря для создания словаря ниже:

В 8.py Выше у нас есть ключ и значение Пара разделена толстой кишкой (:) – Ключи – это элементы списка, в то время как значения – это длина элементов в списке.

Вложенные петли также иногда мы делаем. См. Пример ниже:

Приведенный выше код умножает элементы в первом списке на элементы во втором списке. Чтобы написать это в понимании списка, оно написано, как ниже:

В 10.py Выше, внешнее понимание списка [ … ибо я в диапазоне (5, 8) ] Создает 3 ряда, в то время как внутреннее понимание списка [ I*J для J в диапазоне (1,3) ] Заполняет эти ряды значениями, т. Е. I*J.

Очень хорошее использование понимания списка – это выравнивание списка, состоящего из нескольких списков, как показано ниже:

Список понимания превосходно! Но я думаю, что вы все еще можете использовать для петли в определенных местах, где читаемость кода является ключевым, потому что важно также написать то, что ваша команда может легко читать. Я надеюсь, что вы взволнованы своим путешествием, чтобы стать опытным Pythonista !!! 😉

Следите за новостями в этой серии для моей следующей статьи о Генераторы ! Удивительную и исполненную неделю впереди!

Оригинал: “https://dev.to/joyadauche/the-proficient-pythonista-list-comprehensions-3c3”