Как проверить, содержит ли список число в Python

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

Введение

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

Вы создадите файл mixed_list.py, заполните его списком смешанного типа и потренируетесь получать доступ к его элементам и изменять их с помощью индексации. Этот практический опыт предоставит основу для идентификации числовых элементов в таких списках с использованием таких методов, как any() и isinstance(), которые рассматриваются в последующих шагах.

Изучение списков смешанного типа

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

Сначала создадим список смешанного типа. Откройте редактор VS Code в среде LabEx и создайте новый файл с именем mixed_list.py в директории ~/project.

## Create a mixed-type list
my_list = [1, "hello", 3.14, True]

## Print the list
print(my_list)

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

python ~/project/mixed_list.py

Вы должны увидеть следующий вывод:

[1, 'hello', 3.14, True]

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

Далее, давайте получим доступ к элементам списка смешанного типа с использованием индексации:

## Access elements of the list
first_element = my_list[0]
second_element = my_list[1]
third_element = my_list[2]
fourth_element = my_list[3]

## Print the elements
print("First element:", first_element)
print("Second element:", second_element)
print("Third element:", third_element)
print("Fourth element:", fourth_element)

Добавьте эти строки в файл mixed_list.py и сохраните его. Затем запустите скрипт еще раз:

python ~/project/mixed_list.py

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

[1, 'hello', 3.14, True]
First element: 1
Second element: hello
Third element: 3.14
Fourth element: True

Вы также можете изменить элементы списка смешанного типа:

## Modify an element
my_list[0] = "new value"

## Print the modified list
print(my_list)

Добавьте эти строки в файл mixed_list.py и сохраните его. Выполните скрипт еще раз:

python ~/project/mixed_list.py

Теперь вывод должен быть таким:

['new value', 'hello', 3.14, True]

В этом примере мы изменили первый элемент списка с целого числа на строку.

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

Использование any() с isinstance()

В этом шаге вы научитесь использовать функцию any() в сочетании с функцией isinstance() для проверки, содержит ли список хотя бы один элемент определенного типа. Это особенно полезно при работе со списками смешанного типа.

Функция any() возвращает True, если хотя бы один элемент итерируемого объекта (например, списка) является истинным. В противном случае она возвращает False. Функция isinstance() проверяет, является ли объект экземпляром указанного класса или типа.

Создадим Python-скрипт, чтобы продемонстрировать это. В редакторе VS Code создайте новый файл с именем any_isinstance.py в директории ~/project.

## Create a mixed-type list
my_list = [1, "hello", 3.14, True]

## Check if the list contains any integers
has_integer = any(isinstance(x, int) for x in my_list)

## Print the result
print("List contains an integer:", has_integer)

## Check if the list contains any strings
has_string = any(isinstance(x, str) for x in my_list)

## Print the result
print("List contains a string:", has_string)

## Check if the list contains any floats
has_float = any(isinstance(x, float) for x in my_list)

## Print the result
print("List contains a float:", has_float)

## Check if the list contains any booleans
has_bool = any(isinstance(x, bool) for x in my_list)

## Print the result
print("List contains a boolean:", has_bool)

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

python ~/project/any_isinstance.py

Вы должны увидеть следующий вывод:

List contains an integer: True
List contains a string: True
List contains a float: True
List contains a boolean: True

В этом примере мы использовали генераторное выражение (isinstance(x, int) for x in my_list) внутри функции any(). Это генераторное выражение возвращает True, если элемент x является экземпляром int, и False в противном случае. Затем функция any() проверяет, есть ли среди этих значений хотя бы одно True.

Изменим список, чтобы посмотреть, как изменится вывод. Замените первый элемент my_list на число с плавающей точкой:

## Create a mixed-type list
my_list = [1.0, "hello", 3.14, True]

## Check if the list contains any integers
has_integer = any(isinstance(x, int) for x in my_list)

## Print the result
print("List contains an integer:", has_integer)

## Check if the list contains any strings
has_string = any(isinstance(x, str) for x in my_list)

## Print the result
print("List contains a string:", has_string)

## Check if the list contains any floats
has_float = any(isinstance(x, float) for x in my_list)

## Print the result
print("List contains a float:", has_float)

## Check if the list contains any booleans
has_bool = any(isinstance(x, bool) for x in my_list)

## Print the result
print("List contains a boolean:", has_bool)

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

python ~/project/any_isinstance.py

Теперь вывод должен быть таким:

List contains an integer: False
List contains a string: True
List contains a float: True
List contains a boolean: True

Теперь список не содержит целых чисел, поэтому has_integer равно False.

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

Поиск числовых элементов

В этом шаге вы узнаете, как найти и извлечь числовые элементы (целые числа и числа с плавающей точкой) из списка смешанного типа. Это включает в себя перебор элементов списка и использование функции isinstance() для идентификации числовых элементов.

Создадим Python-скрипт, чтобы продемонстрировать это. В редакторе VS Code создайте новый файл с именем find_numeric.py в директории ~/project.

## Create a mixed-type list
my_list = [1, "hello", 3.14, True, 5, "world", 2.71]

## Create an empty list to store numeric elements
numeric_elements = []

## Iterate through the list
for element in my_list:
    ## Check if the element is an integer or a float
    if isinstance(element, (int, float)):
        ## Add the element to the numeric_elements list
        numeric_elements.append(element)

## Print the list of numeric elements
print("Numeric elements:", numeric_elements)

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

python ~/project/find_numeric.py

Вы должны увидеть следующий вывод:

Numeric elements: [1, 3.14, 5, 2.71]

В этом примере мы прошли по списку my_list и использовали isinstance(element, (int, float)) для проверки, является ли каждый элемент целым числом или числом с плавающей точкой. Если это так, мы добавляем его в список numeric_elements.

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

## Create a mixed-type list
my_list = [1, "hello", 3.14, True, 5, "world", 2.71]

## Create an empty list to store numeric elements
numeric_elements = []

## Iterate through the list
for element in my_list:
    ## Check if the element is an integer or a float
    if isinstance(element, (int, float)):
        ## Add the element to the numeric_elements list
        numeric_elements.append(element)

## Print the list of numeric elements
print("Numeric elements:", numeric_elements)

## Calculate the sum of the numeric elements
numeric_sum = sum(numeric_elements)

## Print the sum
print("Sum of numeric elements:", numeric_sum)

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

python ~/project/find_numeric.py

Теперь вывод должен быть таким:

Numeric elements: [1, 3.14, 5, 2.71]
Sum of numeric elements: 11.85

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

Резюме

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

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