Как проверить, является ли переменная списком в Python

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

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

Введение

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

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

Понимание списков

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

Начнем с создания простого списка:

  1. Откройте редактор VS Code в среде LabEx.

  2. Создайте новый файл с именем lists_example.py в директории ~/project.

    ~/project/lists_example.py
  3. Добавьте следующий код в файл:

    ## Creating a list of numbers
    numbers = [1, 2, 3, 4, 5]
    print("List of numbers:", numbers)
    
    ## Creating a list of strings
    fruits = ["apple", "banana", "cherry"]
    print("List of fruits:", fruits)
    
    ## Creating a list of mixed data types
    mixed_list = [1, "hello", 3.14, True]
    print("List of mixed data types:", mixed_list)

    Здесь мы создали три разных списка: numbers, содержащий целые числа, fruits, содержащий строки, и mixed_list, содержащий смешанные типы данных.

  4. Запустите скрипт с помощью следующей команды в терминале:

    python ~/project/lists_example.py

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

    List of numbers: [1, 2, 3, 4, 5]
    List of fruits: ['apple', 'banana', 'cherry']
    List of mixed data types: [1, 'hello', 3.14, True]

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

  1. Обращение к элементам: Вы можете обращаться к элементам списка по их индексу (позиции). Индекс первого элемента начинается с 0.

    Добавьте следующий код в lists_example.py:

    fruits = ["apple", "banana", "cherry"]
    print("First fruit:", fruits[0])  ## Accessing the first element
    print("Second fruit:", fruits[1]) ## Accessing the second element
    print("Third fruit:", fruits[2])  ## Accessing the third element
  2. Запустите скрипт еще раз:

    python ~/project/lists_example.py

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

    First fruit: apple
    Second fruit: banana
    Third fruit: cherry
  3. Изменение элементов: Вы можете изменить значение элемента в списке, присвоив новое значение его индексу.

    Добавьте следующий код в lists_example.py:

    fruits = ["apple", "banana", "cherry"]
    fruits[1] = "grape"  ## Changing the second element
    print("Modified list of fruits:", fruits)
  4. Запустите скрипт еще раз:

    python ~/project/lists_example.py

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

    Modified list of fruits: ['apple', 'grape', 'cherry']
  5. Добавление элементов: Вы можете добавить элементы в конец списка с помощью метода append().

    Добавьте следующий код в lists_example.py:

    fruits = ["apple", "banana", "cherry"]
    fruits.append("orange")  ## Adding an element to the end
    print("List with added fruit:", fruits)
  6. Запустите скрипт еще раз:

    python ~/project/lists_example.py

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

    List with added fruit: ['apple', 'banana', 'cherry', 'orange']

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

Использование функции type() для определения типа

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

Создадим новый файл Python, чтобы исследовать функцию type():

  1. Откройте редактор VS Code в среде LabEx.

  2. Создайте новый файл с именем type_example.py в директории ~/project.

    ~/project/type_example.py
  3. Добавьте следующий код в файл:

    ## Using type() to identify data types
    
    number = 10
    print("Type of number:", type(number))
    
    floating_point = 3.14
    print("Type of floating_point:", type(floating_point))
    
    text = "Hello, LabEx!"
    print("Type of text:", type(text))
    
    is_true = True
    print("Type of is_true:", type(is_true))
    
    my_list = [1, 2, 3]
    print("Type of my_list:", type(my_list))
    
    my_tuple = (1, 2, 3)
    print("Type of my_tuple:", type(my_tuple))
    
    my_dict = {"name": "Alice", "age": 30}
    print("Type of my_dict:", type(my_dict))

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

  4. Запустите скрипт с помощью следующей команды в терминале:

    python ~/project/type_example.py

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

    Type of number: <class 'int'>
    Type of floating_point: <class 'float'>
    Type of text: <class 'str'>
    Type of is_true: <class 'bool'>
    Type of my_list: <class 'list'>
    Type of my_tuple: <class 'tuple'>
    Type of my_dict: <class 'dict'>

Вывод показывает тип данных каждой переменной. Например, <class 'int'> означает, что переменная является целым числом, <class 'str'> - строкой и так далее.

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

Проверка с использованием isinstance()

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

Создадим новый файл Python, чтобы исследовать функцию isinstance():

  1. Откройте редактор VS Code в среде LabEx.

  2. Создайте новый файл с именем isinstance_example.py в директории ~/project.

    ~/project/isinstance_example.py
  3. Добавьте следующий код в файл:

    ## Using isinstance() to confirm data types
    
    number = 10
    print("Is number an integer?", isinstance(number, int))
    
    floating_point = 3.14
    print("Is floating_point a float?", isinstance(floating_point, float))
    
    text = "Hello, LabEx!"
    print("Is text a string?", isinstance(text, str))
    
    is_true = True
    print("Is is_true a boolean?", isinstance(is_true, bool))
    
    my_list = [1, 2, 3]
    print("Is my_list a list?", isinstance(my_list, list))
    
    my_tuple = (1, 2, 3)
    print("Is my_tuple a tuple?", isinstance(my_tuple, tuple))
    
    my_dict = {"name": "Alice", "age": 30}
    print("Is my_dict a dictionary?", isinstance(my_dict, dict))

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

  4. Запустите скрипт с помощью следующей команды в терминале:

    python ~/project/isinstance_example.py

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

    Is number an integer? True
    Is floating_point a float? True
    Is text a string? True
    Is is_true a boolean? True
    Is my_list a list? True
    Is my_tuple a tuple? True
    Is my_dict a dictionary? True

Теперь рассмотрим сценарий с наследованием:

  1. Добавьте следующий код в isinstance_example.py:

    class Animal:
        pass
    
    class Dog(Animal):
        pass
    
    animal = Animal()
    dog = Dog()
    
    print("Is animal an Animal?", isinstance(animal, Animal))
    print("Is dog a Dog?", isinstance(dog, Dog))
    print("Is dog an Animal?", isinstance(dog, Animal))
    print("Is animal a Dog?", isinstance(animal, Dog))
  2. Запустите скрипт еще раз:

    python ~/project/isinstance_example.py

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

    Is animal an Animal? True
    Is dog a Dog? True
    Is dog an Animal? True
    Is animal a Dog? False

    Как вы можете видеть, функция isinstance() правильно определяет, что Dog также является Animal, так как Dog наследует от Animal. Именно здесь функция isinstance() оказывается более мощной, чем прямое сравнение типов с использованием type().

Использование isinstance() делает ваш код более гибким и надежным при работе с разными типами данных и наследованием.

Итоги

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

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