«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Элегантный и простой способ использования списков Python: понимание списков

Элегантный и простой способ использования списков Python: понимание списков

Опубликовано 8 ноября 2024 г.
Просматривать:282

An elegant and simple way to use Python Lists: List Comprehensions

Вы можете подумать, что Понимание списков — это продвинутая концепция. Однако в сложных ситуациях он может упростить ваш код всего за одну строку. Пришло время понять, как это работает. Я объясню это для начинающих с помощью примеров.

Что такое понимание списка?

Вы часто видите обозначение l2 = [x 1 для x в l]. Говорят, что это то же самое:

l2 = []
for x in l:
    x = x   1
l2.append(x)

Для обоих случаев, если мы начнем с l = [10, 100, 1000], l2 будет:

[11, 101, 1001]

Первый синтаксис — это то, что мы называем пониманием списка.
Возможно, вы предпочитаете обычный цикл for, но я обещаю, что к концу этой статьи вы будете уверенно использовать понимание списков!

Кроме того, давайте проверим подробное официальное определение из документации https://docs.python.org/3/tutorial/datastructures.html#list-comprehensions

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

Давайте разберемся подробнее. Понимание списков — это просто другой способ написания кода, который короче и проще для создания нового списка. Результатом понимания списка является список, поэтому мы присваиваем его списку.
Давайте рассмотрим вторую часть определения, в которой обсуждаются распространенные примеры. Это следует делать на конкретных примерах.
1.

fast_foods = ["Burger", "Pizza", "Tacos", "Fried Chicken", "Hot Dog"]
uppercase_fast_foods = [food.upper() for food in fast_foods]

После этого заглавные буквы_fast_foods будут такими:

['BURGER', 'PIZZA', 'TACOS', 'FRIED CHICKEN', 'HOT DOG']

Мы используем функцию Upper(), чтобы перевести каждый элемент питания в нашем списке в верхний регистр. В результате все элементы теперь отображаются в верхнем регистре. Вот как мы «создаем новые списки, в которых каждый элемент является результатом некоторых операций, примененных к каждому члену другой последовательности или итерируемого объекта».
2.

fast_foods = ["Burger", "Pizza", "Tacos", "Fried Chicken", "Hot Dog"]
foods_with_space = [food for food in fast_foods if " " in food]

После этого food_with_space будет:

['Fried Chicken', 'Hot Dog']

Приведенная выше строка кода извлекает из списка элементы, содержащие пробел. Вот как мы «создаем новые списки, в которых каждый элемент является результатом некоторых операций, примененных к каждому члену другой последовательности или итерируемого объекта».

Примеры понимания списков

Я использовал понимание списков во многих задачах, потому что всякий раз, когда я сталкивался со слишком большим количеством циклов for, я думал: «Нет проблем, я просто их упрощу». Оказывается, логика та же, только чище! ?
Без лишних слов, вот некоторые из наиболее подходящих примеров, которые я придумал:
1. Измените каждый элемент списка

foods = ["Burger", "Fries", "Fried Chicken", "Hot Dog", "Pizza"]
foods_with_version = [food   ' - 2024' for food in foods]
print(foods_with_version)

Выход:

['Burger - 2024', 'Fries - 2024', 'Fried Chicken - 2024', 'Hot Dog - 2024', 'Pizza - 2024']

В этом примере мы берем список продуктов питания и добавляем к каждому из них «- 2024». Мы используем понимание списка, чтобы быстро создать новый список с этими обновленными именами.
2. Создать подсписок из списка на основе условия

foods = ["Burger", "Fried Chicken", "Hot Dog", "Fries", "Pizza"]
long_foods = [food for food in foods if len(food) > 7]
print(long_foods)

Выход:

['Fried Chicken']`

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

x = [i for i in range(10, 20, 2)]
print(x)

Выход:

[10, 12, 14, 16, 18]

В этом примере мы создаем список чисел в диапазоне от 10 до 18, используя понимание списка с помощью range().
4. Применить понимание списка к строке

input_string = "hello world"
marked_vowels = ['*' if char in 'aeiouAEIOU' else char for char in input_string]
print(marked_vowels)

Выход:

['h', '*', 'l', 'l', '*', ' ', 'w', 'o', 'r', 'l', 'd']

В этом последнем примере мы берем строку и отмечаем ее гласные звездочкой (*). Мы используем понимание списка для создания нового списка на основе исходной строки.

Заключение

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

Заявление о выпуске Эта статья воспроизведена по адресу: https://dev.to/mariem_sghaier/an-elegant-and-simple-way-to-use-python-lists-list-comprehensions-584j?1 Если есть какие-либо нарушения, свяжитесь с Study_golang. @163.com удалить
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3