---
title: Основы Python
seo:
  title: Основы Python — Data Analyst
  description: Тема «Основы Python» для собеседования Data Analyst. В чем разница между списком и кортежем? В чем разница между “is” и “==”?
---

[Все темы Data Analyst](/data-analyst)

## <strong>В чем разница между списком и кортежем?</strong> [#q-14bee738d69b815ea3d9ef619289161d]

Основные различия между списком и кортежем в Python&#58;

{/* prettier-ignore */}
1. <strong>Изменяемость</strong>&#58;

    - <strong>Список (</strong><code>list</code><strong>)</strong>&#58; изменяемый (можно добавлять, удалять или изменять элементы).

    - <strong>Кортеж (</strong><code>tuple</code><strong>)</strong>&#58; неизменяемый (после создания элементы изменить нельзя).

1. <strong>Синтаксис</strong>&#58;

    - <strong>Список</strong>&#58; создается с помощью квадратных скобок <code>&#91;&#93;</code>.

        ```python
        my_list = [1, 2, 3]
        ```

    - <strong>Кортеж</strong>&#58; создается с помощью круглых скобок <code>&#40;&#41;</code>.

        ```python
        my_tuple = (1, 2, 3)
        ```

1. <strong>Производительность</strong>&#58;

    - <strong>Кортеж</strong>&#58; обычно имеет немного более высокую производительность из-за неизменяемости.

1. <strong>Использование</strong>&#58;

    - <strong>Список</strong>&#58; используется, когда нужно часто изменять содержимое.

    - <strong>Кортеж</strong>&#58; используется для хранения неизменяемых данных или когда нужно гарантировать, что данные не будут изменены.

:::note[Ссылки для изучения]

1. [Основы Python. Хэндбук от Яндекса](https://education.yandex.ru/handbook/python)
   :::

---

## <strong>В чем разница между “</strong><code>is</code><strong>” и “</strong><code>&#61;&#61;</code><strong>”?</strong> [#q-14bee738d69b81b0955cf002e0713ce7]

Основные различия между операторами <code>is</code> и <code>&#61;&#61;</code> в Python&#58;

{/* prettier-ignore */}
1. <strong>Сравнение объектов</strong>&#58;

    - <code>is</code>&#58; проверяет, ссылаются ли две переменные на один и тот же объект в памяти (т.е. проверяет идентичность объектов).

        ```python
        a = [1, 2, 3]
        b = a
        print(a is b)  # True
        ```

    - <code>&#61;&#61;</code>&#58; проверяет, равны ли значения двух объектов (т.е. проверяет равенство значений).

        ```python
        a = [1, 2, 3]
        b = [1, 2, 3]
        print(a == b)  # True
        print(a is b)  # False
        ```

:::note[Ссылки для изучения]

1. [Основы Python. Хэндбук от Яндекса](https://education.yandex.ru/handbook/python)
   :::

---

## <strong>Переменные в Python передаются по ссылке или по значению?</strong> [#q-14bee738d69b8197b16befffe3725049]

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

Примеры&#58;

1. <strong>Изменяемые объекты</strong>&#58;

   ```python
   def modify_list(lst):
       lst.append(4)

   my_list = [1, 2, 3]
   modify_list(my_list)
   print(my_list)  # [1, 2, 3, 4]
   ```

1. <strong>Неизменяемые объекты</strong>&#58;

   ```python
   def modify_number(n):
       n += 1

   my_number = 10
   modify_number(my_number)
   print(my_number)  # 10
   ```

:::note[Ссылки для изучения]

1. [Основы Python. Хэндбук от Яндекса](https://education.yandex.ru/handbook/python)
   :::

---

## <strong>Назовите изменяемые и неизменяемые объекты</strong> [#q-14bee738d69b8179bf78fa734e5dc08f]

<strong>Изменяемые объекты</strong>&#58;

1. Список (<code>list</code>)

1. Словарь (<code>dict</code>)

1. Множество (<code>set</code>)

1. Массивы из библиотеки <code>numpy</code> (например, <code>numpy&#46;array</code>)

<strong>Неизменяемые объекты</strong>&#58;

1. Числа (<code>int</code>, <code>float</code>, <code>complex</code>)

1. Строки (<code>str</code>)

1. Кортежи (<code>tuple</code>)

1. Неизменяемые множества (<code>frozenset</code>)

1. Булевы значения (<code>bool</code>)

:::note[Ссылки для изучения]

1. [Основы Python. Хэндбук от Яндекса](https://education.yandex.ru/handbook/python)
   :::
