Python имеет мощную функцию, называемую понятностью. С этой функцией понимания новая последовательность может быть построена на основе другой последовательности с добавленной логикой расчета в сжатый способ. Python 2.0 представил представленные списки. Словарь и установленные поведения были введены в Python 3.0. Эта статья охватывает различные типы потенциалов с примерами.
Список понимания
Давайте попробуем понять понимание с примером. Допустим, у нас есть список чисел. Мы хотим создать новый список, который содержит двойное из каждого нечетного числа из исходного списка. Новый список с вышеуказанными требованиями могут быть созданы с использованием понимания списка:
nums = [11, 21, 30, 40, 55, 66, 17] odd_nums = [n*2 for n in nums if n % 2 != 0] # output is [22, 42, 110, 34]
Давайте сломаем вышеуказанное заявление, чтобы понять структуру понимания.
Подразделения обычно имеют ниже части:
- Последовательность ввода – Nums В приведенном выше примере, который является списком
- Переменная, представляющая индивидуальные члены последовательности – n В приведенном выше примере
- Дополнительный предикат – Если n% 2 Мы фильтруем нечетные номера из исходного списка
- Выходное выражение – N * 2 Это двойное отфильтрованное нечетное число
Вот иллюстрация, изложенная разных частей понимания списка:
Вот несколько дополнительных примеров понимания списка:
nums = [1, 2, 3, 4] #Get a new list containing square of the numbers sq_nums = [n*n for n in nums] # [1, 4, 9, 16] fruits = ["Apple", "Banana", "Orange"] #convert list to lowercase l_fruits = [name.lower() for name in names] #['apple', 'banana', 'orange']
Установить понимание
Мы можем создавать установленные последовательности, используя заданные потенциалы. Допустим, у нас есть список, содержащий дубликаты чисел, и мы хотим создать набор без дубликатов. Кроме того, полученная последовательность должна быть двойной из исходных чисел. Это может быть достигнуто с использованием заданного понимания. Обратите внимание, что наборы не поддерживают порядок элементов, полученные члены последовательности могут быть организованы в любом случайном порядке.
dup_nums = [1, 2, 2, 3, 4, 5, 12, 10, 2] sq_set = {num*2 for num in dup_nums} # {1, 4, 100, 9, 16, 144, 25}
Словарь понимание
Вот пример создания понимания словаря, содержащий номер в качестве ключа с квадратом номера в качестве его значения
d = {n : n*n for n in range(1, 6)} # {1: 1, 2: 4, 3: 9, 4: 16, 5: 25}
Понимание кортежа
Есть Нет Порядки кортежа в питоне. Генераторы Python могут быть использованы для создания кортежей аналогичным образом.
Оригинал: “https://dev.to/dev0928/what-are-python-comprehensions-26bn”