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

Руководство по пониманию списка Python

Список понимания Здравствуйте, Pythonista, сегодня вы собираетесь узнать о понимании списка, … Теги с Python, CodeNewie, учебником.

Список понимания

Привет Pythonista Сегодня вы собираетесь узнать о Понимание списка , очень мощная особенность Python для использования при создании или фильтрации списка A Список Python на основе определенных ограничений.

давай начал

Представьте, что вы хотите создать Список кубических чисел от 1 к 100 Создание кубики чисел без Использование Понимание списка Обычно это выглядит так.

Кубика чисел без понимания списка

>>> cubics = []
>>> for number in range(1, 101):
...     cubic = number**3
...     cubics.append(cubic)
... 
>>> cubics
[1, 8, 27, 64, 125, 216, 343, 512, 729, 1000, 1331, 1728, 
 2197, 2744, 3375, 4096, 4913, 5832, 6859, 8000, 9261, 10648,
 ......
]

Кубика чисел, используя понимание списка

>>> cubics = [number**3 for number in range(1, 101)]
>>> print(cubics)
[
  1, 8, 27, 64, 125, 216, 343, 512, 729, 1000, 1331, 1728, 2197, 2744,
 3375, 4096, 4913, 5832, 6859, 8000, 9261, 10648, 12167, 13824, 15625,
 ....
]

Как мы видим, мы сделали То же самое с Понимание списка Но вместо этого это делать в 4 строки кода, мы сделали это просто один Отказ не круто?

* Понимание списка позволяет делать удивительные вещи в одну строку (* одноклассник ), что-то потребуется даже более 6 строк.

Синтаксис понимания списка

List = [element for element in iterable]

Декартовое изделие с использованием понимания списка

Если A и B – два не пустые наборы, то их Декартово Продукт A × B – это набор Все заказанные пары элементов из A и B, с Список понимания Вы найдете его одним строкой, как показано ниже;

>>> a = [1 , 3 , 5, 7]
>>> b = [2, 4, 6, 8]
>>> product = [(i , j) for i in a for j in b]
>>> print(product)
[(1, 2), (1, 4), (1, 6), (1, 8), (3, 2),
 (3, 4), (3, 6), (3, 8), (5, 2), (5, 4),
 (5, 6), (5, 8), (7, 2), (7, 4), (7, 6), 
 (7, 8)
]

Условные блоки в списке понимание

Помимо всего Итализация над последовательности , вы также можете поставить Условный Заявления, такие как и иначе внутри понимание Логика для выбора элементов на основе определенных условий.

Даже номер с использованием списка понимание

Допустим, мы хотим сделать Список даже номеров из 203 к 289 Использование Понимание списка , это также может быть сделано в одну строку, как показано ниже;

>>> even_numbers = [number for number in range(203, 289) if number%2==0]
>>> print(even_numbers)
[
  204, 206, 208, 210, 212, 214, 216, 218, 220, 222, 224, 226, 228, 230,
 232, 234, 236, 238, 240, 242, 244, 246, 248, 250, 252, 254, 256, 258,
 260, 262, 264, 266, 268, 270, 272, 274, 276, 278, 280, 282, 284, 286,
 288
]

Фильтрация Имея, используя понимание списка

Это пример программы, которая использует понимание списка для фильтрации кандидатов, которые выше или равны 18.

>>> candidates = [
...     ('John', 15), 
...     ('Silyvia', 34), 
...     ('Hamis', 17), 
...     ('Alphonce', 22), 
...     ('Grace', 27)
... ]
>>> 
>>> above_18 = [candidate for candidate in candidates if candidate[1]>=18]
>>> print(above_18)
[('Silyvia', 34), ('Alphonce', 22), ('Grace', 27)]

Загрузка определенных файлов с использованием понимания списка

Давайте использовать список списков для загрузки всех путей изображения в нашем текущем каталоге

>>> import os
>>> images = [img for img in os.listdir() if img.endswith('.jpg')]
>>> print(images)
['AI gallery.jpg']
​

Сравнивая 2D Array Использование пометки списка]

Вы также можете использовать понимание списка для сглаживания 2D массива в один 1D массив, итерацией на все элементы в списке.

>>> data =[(1, 2), (3, 4), (5, 6)]
>>> flattened = [n for in_data in data for n in in_data]
>>> print(flattened)
[1, 2, 3, 4, 5, 6]

Скалярный продукт с использованием понимания списка

Появление списка также может быть использовано для поиска скалярного потенциала путем умножения по заданному номеру на каждом элементе в неразмерном независимо, как показано ниже;

>>> vector = [10, 25, 32]
>>> vector3 = [n * 3 for n in vector]
>>> print(vector)
[10, 25, 32]

Ну, это все на сегодня, надеюсь, вы найдете его полезным, теперь не стесняйтесь поделиться сейчас с вашим собратьем.

В случае любого предложения или комментария, бросьте его в окно комментариев, и я вернусь к вам как можно скорее.

Оригинальная статья можно найти на Kalebujordan.com.

Оригинал: “https://dev.to/kalebu/a-guide-to-python-list-comprehension-28d3”