Как проверить, содержит ли список определенный элемент в Python

PythonPythonBeginner
Практиковаться сейчас

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

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

Вы начнете с создания списка фруктов, а затем используете оператор in для проверки наличия определенных фруктов, таких как "banana" (банан) и "grape" (виноград). В практическом занятии показано, как оператор in возвращает True, если элемент найден, и False в противном случае. Кроме того, вы изучите использование оператора not in для проверки отсутствия элемента в списке.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL python(("Python")) -.-> python/BasicConceptsGroup(["Basic Concepts"]) python(("Python")) -.-> python/DataStructuresGroup(["Data Structures"]) python(("Python")) -.-> python/ErrorandExceptionHandlingGroup(["Error and Exception Handling"]) python(("Python")) -.-> python/PythonStandardLibraryGroup(["Python Standard Library"]) python/BasicConceptsGroup -.-> python/strings("Strings") python/DataStructuresGroup -.-> python/lists("Lists") python/DataStructuresGroup -.-> python/tuples("Tuples") python/ErrorandExceptionHandlingGroup -.-> python/catching_exceptions("Catching Exceptions") python/PythonStandardLibraryGroup -.-> python/data_collections("Data Collections") subgraph Lab Skills python/strings -.-> lab-559524{{"Как проверить, содержит ли список определенный элемент в Python"}} python/lists -.-> lab-559524{{"Как проверить, содержит ли список определенный элемент в Python"}} python/tuples -.-> lab-559524{{"Как проверить, содержит ли список определенный элемент в Python"}} python/catching_exceptions -.-> lab-559524{{"Как проверить, содержит ли список определенный элемент в Python"}} python/data_collections -.-> lab-559524{{"Как проверить, содержит ли список определенный элемент в Python"}} end

Понятие принадлежности элемента списку

На этом этапе вы научитесь проверять, существует ли элемент в списке на Python. Это фундаментальная операция при работе со списками и часто используется для принятия решений на основе наличия или отсутствия определенных элементов. Мы будем использовать оператор in для этого.

Сначала создадим список фруктов:

fruits = ["apple", "banana", "cherry"]

Эта строка кода создает список с именем fruits, содержащий три строковых элемента: "apple" (яблоко), "banana" (банан) и "cherry" (вишня).

Теперь используем оператор in для проверки, есть ли "banana" в списке fruits. Создайте файл с именем membership.py в директории ~/project с помощью редактора VS Code. Добавьте следующий код в файл membership.py:

fruits = ["apple", "banana", "cherry"]
print("banana" in fruits)

Сохраните файл. Теперь выполните скрипт, используя следующую команду в терминале:

python membership.py

Вывод будет следующим:

True

Это показывает, что "banana" действительно присутствует в списке fruits.

Теперь проверим, есть ли "grape" (виноград) в списке fruits. Измените файл membership.py следующим образом:

fruits = ["apple", "banana", "cherry"]
print("grape" in fruits)

Сохраните файл и выполните его снова:

python membership.py

Вывод будет следующим:

False

Это показывает, что "grape" отсутствует в списке fruits.

Оператор in возвращает True, если элемент найден в списке, и False в противном случае. Это простой, но мощный способ определить принадлежность элемента списку на Python.

Вы также можете использовать оператор not in для проверки, отсутствует ли элемент в списке. Например:

fruits = ["apple", "banana", "cherry"]
print("grape" not in fruits)

Сохраните файл и выполните его:

python membership.py

Вывод будет следующим:

True

Это происходит потому, что "grape" отсутствует в списке fruits, поэтому выражение "grape" not in fruits оценивается как True.

Использование оператора in

На предыдущем этапе вы изучили основы проверки принадлежности элемента списку с использованием оператора in. На этом этапе мы рассмотрим более практические применения оператора in с разными типами данных и сценариями.

Оператор in не ограничивается только списками. Его также можно использовать с другими итерируемыми типами данных, такими как строки и кортежи (tuples).

Использование in с строками:

Вы можете проверить, существует ли подстрока в более длинной строке. Создайте файл с именем string_membership.py в директории ~/project с помощью редактора VS Code. Добавьте следующий код в файл string_membership.py:

text = "Hello, world!"
print("world" in text)

Сохраните файл. Теперь выполните скрипт, используя следующую команду в терминале:

python string_membership.py

Вывод будет следующим:

True

Это показывает, что подстрока "world" присутствует в строке "Hello, world!".

Попробуем проверить наличие подстроки, которая не существует:

text = "Hello, world!"
print("python" in text)

Сохраните файл и выполните его снова:

python string_membership.py

Вывод будет следующим:

False

Это показывает, что подстрока "python" отсутствует в строке "Hello, world!".

Использование in с кортежами (tuples):

Кортежи (tuples) похожи на списки, но они неизменяемы (не могут быть изменены после создания). Вы также можете использовать оператор in с кортежами. Создайте файл с именем tuple_membership.py в директории ~/project с помощью редактора VS Code. Добавьте следующий код в файл tuple_membership.py:

numbers = (1, 2, 3, 4, 5)
print(3 in numbers)

Сохраните файл. Теперь выполните скрипт, используя следующую команду в терминале:

python tuple_membership.py

Вывод будет следующим:

True

Это показывает, что число 3 присутствует в кортеже numbers.

Проверим наличие числа, которое не существует:

numbers = (1, 2, 3, 4, 5)
print(6 in numbers)

Сохраните файл и выполните его снова:

python tuple_membership.py

Вывод будет следующим:

False

Это показывает, что число 6 отсутствует в кортеже numbers.

Эти примеры демонстрируют универсальность оператора in в Python. Его можно использовать для проверки принадлежности элемента различным итерируемым типам данных, что делает его ценным инструментом для написания компактного и читаемого кода.

Поиск индекса с помощью метода index()

На этом этапе вы научитесь находить индекс элемента в списке с использованием метода index(). Этот метод полезен, когда вам нужно узнать позицию определенного элемента в списке.

Начнем с того же списка fruits, который мы использовали на предыдущих этапах. Создайте файл с именем find_index.py в директории ~/project с помощью редактора VS Code. Добавьте следующий код в файл find_index.py:

fruits = ["apple", "banana", "cherry"]
index_of_banana = fruits.index("banana")
print(index_of_banana)

Сохраните файл. Теперь выполните скрипт, используя следующую команду в терминале:

python find_index.py

Вывод будет следующим:

1

Это показывает, что "banana" находится по индексу 1 в списке fruits. Помните, что списки в Python имеют нулевой индекс, то есть первый элемент находится по индексу 0, второй — по индексу 1 и так далее.

Теперь попробуем найти индекс элемента, который не существует в списке:

fruits = ["apple", "banana", "cherry"]
index_of_grape = fruits.index("grape")
print(index_of_grape)

Сохраните файл и выполните его снова:

python find_index.py

Вывод будет следующим:

Traceback (most recent call last):
  File "/home/labex/project/find_index.py", line 2, in <module>
    index_of_grape = fruits.index("grape")
ValueError: 'grape' is not in list

Это вызывает ошибку ValueError, потому что "grape" не найден в списке fruits. Важно обрабатывать эту потенциальную ошибку при использовании метода index(). Вы можете использовать оператор in для проверки существования элемента в списке перед вызовом метода index(), чтобы избежать ошибки ValueError.

Вот пример того, как обработать ошибку ValueError:

fruits = ["apple", "banana", "cherry"]
item_to_find = "grape"

if item_to_find in fruits:
    index_of_item = fruits.index(item_to_find)
    print(f"{item_to_find} is at index {index_of_item}")
else:
    print(f"{item_to_find} is not in the list")

Сохраните файл и выполните его:

python find_index.py

Вывод будет следующим:

grape is not in the list

Этот код сначала проверяет, существует ли item_to_find в списке fruits с помощью оператора in. Если он существует, он находит индекс и выводит его. В противном случае он выводит сообщение, указывающее, что элемент отсутствует в списке. Такой подход предотвращает ошибку ValueError и делает ваш код более надежным.

Резюме

В этом практическом занятии (lab) вы научились проверять наличие определенных элементов в списке Python. Основной метод заключается в использовании оператора in, который возвращает True, если элемент присутствует в списке, и False в противном случае. Вы также изучили оператор not in, который выполняет обратную функцию, возвращая True, если элемент не найден в списке.

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