Список Python — это тип структуры данных, который позволяет хранить несколько элементов в одной переменной. Списки создаются путем помещения последовательности элементов, разделенных запятыми, в квадратные скобки [].
Например, мы могли бы составить список некоторых известных видов спорта в США:
Sports_in_US = ['Soccer', 'Golf', 'Basketball', 'Baseball']
Этот список Sports_in_US содержит четыре строковых элемента, каждый из которых представляет отдельный вид спорта, которым занимаются в США.
- Метод 1: с использованием индексации Python
- Метод 2: с использованием срезов списка
- Метод 3: с использованием понимания списка
- Метод 4: с помощью метода filter()
Метод 1: с использованием индексации Python
В Python списки представляют собой упорядоченную коллекцию объектов, которые упорядочены и могут индексироваться, начиная с нуля. Это означает, что первый элемент имеет индекс 0, второй — индекс 1 и так далее.
Например, мы могли бы создать список некоторых популярных районов Чикаго и найти двух соседей с помощью индексации:
chicago_neighborhoods = ["Hyde Park", "Wicker Park", "Lincoln Park", "Logan Square", "West Loop"] first_neighbor = chicago_neighborhoods[0] second_neighbor = chicago_neighborhoods[1] print('Two neighbors are: ', first_neighbor, second_neighbor)
Вывод: Как мы видим, мы получаем первые два индексированных элемента из списка.
Two neighbors are: Hyde Park Wicker Park
Примечание:
- Мы можем получить элементы только один за другим, поскольку индексы списка принимают только один аргумент за раз.
- Мы также можем предоставить отрицательное индексированное значение для возвращаемых значений.
Метод 2: с использованием срезов списка
Если мы хотим получить доступ к более чем одному значению одновременно, мы можем использовать срез списка в Python. мы указываем начальный и конечный индексы, и Python вернет новый список с элементами от начального до конечного индекса(но не включая). у нас также может быть скачок индекса, т.е. у нас будут данные в интервале индексов.
Например, создадим список главных героев фильма «ДРУЗЬЯ» и попробуем получить из него элементы:
friends_characters = ["Rachel", "Monica", "Phoebe", "Joey", "Chandler", "Ross"] first_three_characters = friends_characters[0:3] print(first_three_characters)
Результат:
['Rachel', 'Monica', 'Phoebe']
У нас также могут быть альтернативные элементы из этого списка:
friends_characters = ["Rachel", "Monica", "Phoebe", "Joey", "Chandler", "Ross"] first_three_characters = friends_characters[0:5:2] print(first_three_characters)
Результат:
['Rachel', 'Phoebe', 'Chandler']
Примечание: мы также можем использовать отрицательные индексные числа.
Таким образом, мы можем использовать нарезку списка для возврата нескольких значений в списке Python.
Метод 3: с использованием понимания списка
Понимание списков — это более продвинутая функция Python, которая предлагает краткий способ создания новых списков путем перебора существующих списков и применения условного оператора.
Например, предположим, что у нас есть список серий из сериала «ДРУЗЬЯ», и мы хотим вернуть только те, которые начинаются с «Эпизод с».
friends_episodes = ["The One with Five Steaks and an Eggplant", "The One Where Old Geller Dies", "The One with the Embryos", "The One with Ross's Wedding", "The One Where No One's Ready"] episodes_starting_with_TOW = [episode for episode in friends_episodes if episode.startswith("The One with")] print(episodes_starting_with_TOW)
Вывод: в приведенном выше примере строка со списком создает новый список, который включает только эпизоды из friends_episodes, которые начинаются с «The One with».
['The One with Five Steaks and an Eggplant', 'The One with the Embryos', "The One with Ross's Wedding"]
Таким образом, мы можем использовать понимание списка, чтобы список Python возвращал несколько значений.
Метод 4: с помощью метода filter()
Функция filter() в Python создает список элементов, для которых функция возвращает True.
Представьте, что у нас есть список самых кассовых фильмов США, и мы хотим вернуть только те фильмы, которые заработали более 600 миллионов долларов. Вы можете использовать filter(): здесь мы сначала определим функцию, которая будет выбирать фильмы с общей стоимостью более 600 миллионов долларов, а затем применим эту функцию в качестве параметра, передаваемого в функцию filter().
Затем мы просто создадим список всех возвращаемых значений, используя функцию list().
def made_more_than_500(film): name, gross = film return gross > 600 top_grossing_films = [ ("Titanic", 600), ("Star Wars: The Force Awakens", 936), ("Avengers: Endgame", 858), ("Finding Dory", 486) ] high_grossing_films = list(filter(made_more_than_500, top_grossing_films)) print(high_grossing_films)
Результат:
[('Star Wars: The Force Awakens', 936),('Avengers: Endgame', 858)]