🐍 Python  ·  20 вопросов  ·  ~45 мин  ·  ⏱ Таймер 45:00  ·  Лёгкий  · 

Списки и кортежи

Проверяет изменение коллекций, срезы, копирование, распаковку и выбор подходящего типа. Здесь проверяется перенос знания на новый код: вопросы распределены между шкалами «Создание коллекций», «Изменение списка», «Копирование» и «Кортежи и распаковка». Все задания рассчитаны на CPython 3.12; отличия других реализаций или версий учитываются только там, где это прямо оговорено.

Отвечено: 0 из 20
⏱ --:--
0%
💡 Инструкция: Версия: CPython 3.12. Выберите один ответ из четырёх. На 20 вопросов отведено не меньше 40 минут; код лучше читать построчно. После завершения вы увидите общий процент, четыре тематические шкалы и объяснение каждого ответа.
Вопрос 1 из 20
Что произойдёт с вложенными списками?
Python
rows = [[0] * 2] * 3
rows[0][1] = 7
print(rows)
Вопрос 2 из 20
Сначала выполняется `append`, затем `extend`. Как будет выглядеть список после обеих операций?
Python
items = [1, 2, 3]
items.append([4, 5])
items.extend([6, 7])
print(items)
Вопрос 3 из 20
Что напечатает код с поверхностной копией?
Python
original = [[1], [2]]
copy = original[:]
copy.append([3])
copy[0].append(9)
print(original, copy)
Вопрос 4 из 20
Что выведет распаковка?
Python
first, *middle, last = (10, 20, 30, 40, 50)
print(first, middle, last)
Вопрос 5 из 20
Что выведет выражение умножения списка?
Python
values = [1, 2]
result = values * 2
values[0] = 9
print(values, result)
Вопрос 6 из 20
Как изменится список?
Python
items = [1, 2, 3, 4]
removed = items.pop(1)
items.insert(2, removed * 10)
print(items, removed)
Вопрос 7 из 20
Как получить независимую копию списка списков, если затем будут меняться внутренние элементы?
Вопрос 8 из 20
Изменит ли обмен значений x и y исходный кортеж point?
Python
point = (3, 4)
x, y = point
x, y = y, x
print(point, x, y)
Вопрос 9 из 20
Какой результат даст присваивание срезу?
Python
items = [0, 1, 2, 3, 4]
items[1:4] = [9, 8]
print(items)
Вопрос 10 из 20
Что останется после удаления во время обхода?
Python
items = [1, 2, 2, 2, 3]
for x in items:
    if x == 2:
        items.remove(x)
print(items)
Вопрос 11 из 20
После создания поверхностной копии `b`, глубокой копии `c` и вызова `a[0].append(5)` какие вложенные списки изменятся?
Python
import copy
a = [[1], [2]]
b = copy.copy(a)
c = copy.deepcopy(a)
a[0].append(5)
print(b, c)
Вопрос 12 из 20
Что выведет одноэлементный кортеж?
Python
a = (5)
b = (5,)
print(type(a).__name__, type(b).__name__)
Вопрос 13 из 20
Нужно часто добавлять и удалять элементы с конца, сохраняя порядок. Какая базовая структура подходит лучше?
Вопрос 14 из 20
Каков результат методов sort и sorted?
Python
items = [3, 1, 2]
result = items.sort()
other = sorted(items, reverse=True)
print(items, result, other)
Вопрос 15 из 20
Почему выражение `matrix = [[0] * cols for _ in range(rows)]` безопаснее, чем `[[0] * cols] * rows`?
Вопрос 16 из 20
В распаковке допущена ошибка: значений больше, чем целей слева. Чем закончится этот граничный сценарий?
Вопрос 17 из 20
Нужно представить координату, которая после создания не должна меняться и естественно распаковывается в x, y. Что выбрать из базовых типов?
Вопрос 18 из 20
Что выведет сравнение списков?
Python
print([1, 2, 10] < [1, 3, 0])
Вопрос 19 из 20
Удаление нулей во время обхода пропускает соседние элементы. Какое исправление сохранит все ненулевые значения?
Вопрос 20 из 20
Какой результат у расширенной распаковки вызова?
Python
def f(a, b, c):
    return a + b * c

values = (2, 3)
print(f(*values, c=4))

Ответьте на все 20 вопросов, чтобы получить результат

🔗 Встроить тест на свой сайт (iframe) ▼

Скопируйте код и вставьте в любое место на вашем сайте:

Также доступна прямая ссылка на embed-страницу