Как использовать понимание списков в Python

Как использовать понимание списков в Python

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





Однако вы можете разволноваться, если не знаете, как им пользоваться. Это может быть даже более неприятно, если вы не знаете, где применить это в своем коде. Здесь мы покажем вам, как использовать понимание списков в Python на некоторых реальных примерах.





Что такое понимание списков в Python и как это работает?

Создать список элементов с помощью Python очень просто. Однако задача может стать немного утомительной, если вам нужно сгенерировать список значений или элементов из математических или строковых операций. Вот когда может пригодиться использование списков.





Преимущество использования понимания списков состоит в том, что вы можете выполнять несколько операций в одном списке.

кнопка Home на моем iphone не работает

Напротив, он создает новые элементы и добавляет их в пустой список, который объявляет автоматически. Поэтому вместо того, чтобы вручную создавать пустой список и добавлять к нему для цикл, понимание списков Python позволяет вам делать это автоматически, не беспокоясь о том, как поступает новый список.



Термин «понимание списка» происходит от того факта, что все операции находятся в списке Python, назначенном именованной переменной. Как мы заявляли ранее, он позволяет выполнять определенные операции в одной строке кода. Затем он добавляет результат в новый список.

В конце концов, вы также можете использовать вывод понимания списка для других целей. Это потому, что он складывает выражения в отдельные переменные. Так что вы можете обратиться к ним позже.





Например, вы могли бы быть парсинг веб-сайта с помощью BeautifulSoup . Предположим, вы хотите получить на веб-сайте названия всех товаров и их цены.

Затем вы решаете поместить извлеченные данные в файл CSV или Excel. Идеальная практика - очистить название всех товаров и их цены и поместить их в отдельные столбцы. Однако использование списка в этом случае гарантирует, что у вас есть очищенные данные в специальных переменных. Затем вы можете преобразовать такие переменные в Python DataFrame позже.





Посмотрите на пример ниже:

Products = [i.text for i in bs.find_all('name tags')]
Price = [i.text for i in bs.find_all('price tags')]

Как только вы получите зацикленные переменные, вы можете поместить их в отдельные столбцы в DataFrame, используя Python Pandas.

Как создать и использовать понимание списка в Python

В для цикл является важным итератором в понимании списка. Как правило, представление списка в Python принимает следующий формат:

ComprehensionVariable = [expression for items in list]

Печать ПониманиеПеременная выводит результат вышеуказанного кода в виде списка.

Однако будьте осторожны, чтобы не путать понимание списка с открытым для петля.

Например, давайте использовать открытый цикл чтобы получить список всех кратных трех от 1 до 30:

myList = []
for i in range(1, 11):
myList.append(i * 3)
print(myList)
Output: [3, 6, 9, 12, 15, 18, 21, 24, 27, 30]

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

multiplesOf3 = [i*3 for i in range(1, 11)]
print(multiplesOf3)
Output = [3, 6, 9, 12, 15, 18, 21, 24, 27, 30]

Вы также можете использовать понимание списка с условными операторами. В приведенном ниже примере кода печатаются все нечетные числа от 1 до 10:

oddNumbers = [i for i in range(1, 11) if not i%2==2]
print(oddNumbers)
Output = [1, 3, 5, 7, 9]

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

myList = []
for i in range(1, 11):
if not i%2 == 0:
myList.append(i)
print(myList)
Output: [1, 3, 5, 7, 9]

Связанный: Как добавить список в Python

Понимание списка также принимает вложенные операторы if:

oddNumbers = [i for i in range(1, 11) if not i%2==0 if i<4]
print(oddNumbers)
Output: [1, 3]

Также требуется вложенный для петля:

someNums = [[i*2 for i in range(1, 3)] for _ in range(4)]
print(someNums)

Вы также можете иметь простой вложенный для цикл в понимании списка:

someNums = [i*2 for i in range(1, 3) for k in range(4)]

Вы также можете управлять строками с помощью списка Python. Давайте посмотрим на понимание счетчика слов ниже:

word = ['This is a python list comprehension tutorial']
wordCounter = [i.count(' ') + 1 for i in word]
print(wordCounter)
Output: 7

Понимание списка также может принимать функцию, выполняющую определенную операцию. Давайте вставим функцию умножения, которая получает четные числа в понимание списка, чтобы увидеть, как это работает:

Numbers = [4, 7, 8, 15, 17, 10]
def multiplier(n):
multiple = n*2
return multiple
multipleEven = [multiplier(i) for i in Numbers if i%2==0]
print(multipleEven)
Output: [8, 16, 20]

Вы по-прежнему можете написать приведенный выше код в одной функции без использования понимания. Но понимание списка полезно, когда вам нужно выполнить несколько итераций и поместить каждую из них в отдельные переменные.

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

multipleEvenFromOdds = [multiplier(i) for i in Numbers if not i%2==0]
print(multipleEvenFromOdds)
Output: [14, 30, 34]

Словарь и понимание множеств

В дополнение к пониманию списка Python также предлагает словарь и набор функций понимания.

Взгляните на приведенный ниже пример понимания словаря, чтобы увидеть, как это работает:

corresponding = {i: i*2 for i in range(10) if not i%2==0}
print(corr)
Output: {1: 2, 3: 6, 5: 10, 7: 14, 9: 18}

Приведенный выше код выполняет итерацию по списку чисел от 1 до 9 и делает их ключами. Затем он говорит Python умножить каждый ключ на два. Наконец, он представляет результаты этой операции как соответствующие значения для каждого ключа в результирующем массиве.

Связанный: Как массивы и списки работают в Python

Понимание набора немного похоже на понимание списка. Вот пример понимания набора:

как создать игру roblox
numbers = {i**(2) for i in range(10) if i%4==0}
print(numbers)
Output: {0, 16, 64}

Однако, в отличие от понимания списка, понимание множества удаляет дубликаты:

nums = {i for i in range(20) if i%2==1 for k in range(10) if k%2==1}
print(nums)
Output: {1, 3, 5, 7, 9, 11, 13, 15, 17, 19}

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

Можете ли вы использовать понимание списка каждый раз?

Мы рассмотрели различные примеры понимания списков и их использование. Однако, как и любой другой метод Python, вариант использования понимания списка зависит от конкретной проблемы, которую вы хотите решить. Поэтому вы должны использовать его только в том случае, если он идеально подходит для конкретной проблемы, которую вы хотите решить.

Одна из целей понимания списка - упростить ваш код и сделать его более читабельным. Поэтому старайтесь избегать сложностей при работе с ним. Например, долгое понимание Python может стать сложным для чтения. Это противоречит его цели.

Делиться Делиться Твитнуть Эл. адрес Как использовать составные части списков Python (и когда их не использовать)

Вот все, что вам нужно знать об использовании этой удивительной функции Python, которая в мгновение ока повысит вашу продуктивность и читаемость кода.

Читать далее
Похожие темы
  • Программирование
  • Python
Об авторе Идису Омисола(Опубликовано 94 статей)

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

Ещё от Idowu Omisola

Подписывайтесь на нашу новостную рассылку

Подпишитесь на нашу рассылку, чтобы получать технические советы, обзоры, бесплатные электронные книги и эксклюзивные предложения!

Нажмите здесь, чтобы подписаться