Списки

Последнее обновление: 28.09.2023
Вопрос 1

Что выведет на консоль следующая программа:

languages = ["Java", "Python", "Javascript", "C++", "C#"]
for lang in languages[:]:
    languages.remove(lang)

print(languages)

Варианты ответов:

  1. ["Java", "Python", "Javascript", "C++", "C#"]

  2. []

  3. Будет сгенерировано исключение

  4. Ничего из выше перечисленного

Ответ

Правильный вариант: [] (список без элементов)

Выражение languages[:] возвращает все элементы списка languages. В цикле перебираем все эти элементы и удаляем из списка languages.

Вопрос 2

Что выведет на консоль следующая программа:

try: 
    letters=["a","b"]
    print(letters[2])
except (ValueError, IndexError):
    print("Произошла ошибка")

Варианты ответов:

  1. Index Error

  2. Syntax Error

  3. 2

  4. Произошла ошибка

Ответ

Правильный вариант: Произошла ошибка. Поскольку список letters имеет только два элемента, то при обращении по индексу 2 программа сгенерирует ошибку IndexError, которая будет перехвачена в выражении except. Соответственно будет выполняться выражение print("Произошла ошибка")

Вопрос 3

Что выведет на консоль следующая программа:

numbers = [1, 2, 3, 4]
for idx, item in enumerate(numbers): del item
print(numbers)

Варианты ответов:

  1. [1, 3]

  2. []

  3. [2, 4]

  4. [1, 2, 3, 4]

  5. Ничего из выше перечисленного

Ответ

Правильный вариант: [1, 2, 3, 4]

Функция enumerate(numbers) возвращает перебираемый объект, где каждый элемент можно представить в виде кортежа, который состоит из элемента из списка numbers и его индекса:

[(0, 1), (1, 2), (2, 3), (3, 4)]

Далее этот объект перебирается и раскладывается на две переменных: idx (индекс) и item (само число из списка numbers)

for idx, item in enumerate(numbers)

В цикле удаляем объект item:

del item

Это выражение затронет значение в объекте, который возвращается из функции enumerate(numbers), однако изначальный список numbers останется неизменным.

Вопрос 4

Что выведет на консоль следующая программа:

li = ["A"]
li.extend("BCD")
print(li)

Варианты ответов:

  1. ["A", "BCD"]

  2. ["A", "B", "C", "D"]

  3. ["ABCD"]

  4. Программа сгенерирует ошибку

Ответ

Правильный вариант: ["A", "B", "C", "D"]

Метод extend() добавляет в конец списка набор элементов, который передается в качестве параметра. Метод extend() рассматривает переданный в него параметр как набор объектов, поэтому в данном случае в реальности мы могли бы написать li.extend(["B","C","D"]). И в итоге элементы списка ["B","C","D"] были бы добавлены в конец списка ["A"]

Вопрос 5

Что выведет на консоль следующая программа:

def func(x, y=None):
    if y is None:
        y = [1]
    y.extend(x)
    return y

print(func([0], [2, 4, 5]))

Варианты ответов:

  1. [2, 4, 5, [0]]

  2. [1, 2, 4, 5, [0]]

  3. [0, 2, 4, 5]

  4. [0, 1, 2, 4, 5]

  5. [2, 4, 5, 0]

  6. Программа сгенерирует ошибку

Ответ

Правильный вариант: [2, 4, 5, 0]

Здесь функция добавляет в конец списка y элементы из списка x. Поскольку параметр y здесь определен - это список [2, 4, 5], то вызов y.extend(x) добавляет в конец этого списка элементы из списка [0].

Вопрос 6

Что выведет на консоль следующая программа:

numbers = [1, 2, 3, 4, 5]
print(2.0 in numbers, end=" ")
print("2" in numbers)

Варианты ответов:

  1. True True

  2. False False

  3. True False

  4. False True

  5. Программа сгенерирует ошибку

Ответ

Правильный вариант: True False

Оператор in возвращает True, если объект имеется в некоторой коллекции объектов. Если данные представляют разные типы данные, то применяются неявные преобразования. Если один элемент операции представляет float, а другой int, то значение типа int приводится к типу float. Поэтому для числа 3.0 возвратится True. В случае со строкой "2" неявное преобразование невозможно, поэтому возвращается False.

Вопрос 7

Что выведет на консоль следующая программа:

numbers = [1, 2, 3, 4, 5]
print(numbers[:4].pop( ))

Варианты ответов:

  1. [1, 2, 3, 4]

  2. 5

  3. [1, 2, 3, 5]

  4. 4

  5. 1

Ответ

Правильный вариант: 4

Выражение numbers[:4] выбирает первые 4 элемента списка, а метод pop() извлекает последний из них.

Вопрос 8

Что выведет на консоль следующая программа:

items = [5, "t", 5.6, 3, "Python"]
print(3.0 in items, end=" ")
print(bool(items[-2:-4]))

Варианты ответов:

  1. True True

  2. False False

  3. True False

  4. False True

Ответ

Правильный вариант: True False

Выражение 3.0 in items возвращает True, потому что в списке items есть число 3. А выражение bool(items[-2:-4]) возвращает False, потому что выражение items[-2:-4] возвращает пустой список [], а пустой список соответствует значению False..

Вопрос 9

Что выведет на консоль следующая программа:

numbers = [5, 8, 12, 15, 5, 18, 11]
print(numbers[:].count(5))

Варианты ответов:

  1. 0

  2. 1

  3. 2

  4. 3

  5. 5

  6. 7

Ответ

Правильный вариант: 2

Выражение [start:end] выбирает из списка подсписок с индекса start по индекс end. Если один из параметров (или оба параметра) не определены, то по умолчанию для start равно 0, а end представляет конечный индекс списка. Соответственно выражение [:] выбирает все элементы списка. Затем метод .count(5) вычисляет количество значений "5" в полученном списке. Поскольку в полученном списке есть два числа со значением 5, то возвращается число 2.

Вопрос 10

Что выведет на консоль следующая программа:

li = ["in", "as", "if", "be"]
print(li[1:][:2])

Варианты ответов:

  1. "in", "as", "if", "be"

  2. "as", "if"

  3. "in", "as"

  4. "in", "as", "if"

  5. "if", "be"

  6. "as", "if", "be"

Ответ

Правильный вариант: ["as", "if"]

Выражение li[1:] выбирает из списка подсписок с индекса 1. То есть мы получим список ["as", "if", "be"]

Затем из полученного списка выбираем все элементы по 2-й индекс не включая: li[1:][:2].

Вопрос 11

Что выведет на консоль следующая программа:

li = [10, 20, 30, 40]
li[1:3]=[50]
print(li)

Варианты ответов:

  1. [10, 50, 30, 40]

  2. [10, 50, 50, 40]

  3. [50, 50]

  4. [10, 50, 40]

  5. [50]

Ответ

Правильный вариант: [10, 50, 40]

Выражение li[1:3] выбирает подсписок [20, 30]

Затем этому подсписку присваивается список [50]. То есть в исходном списке мы заменяем подсписок [20, 30] на [50].

Вопрос 12

Что выведет на консоль следующая программа:

arr = []
print(arr * 2)

Варианты ответов:

  1. []

  2. [][]

  3. None

  4. Будет ошибка

Ответ

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

Если бы список содержал элементы, например, если arr равен [2, 3], то результатом выражения print(arr*2) был бы список [2, 3, 2, 3].

Дополнительные материалы
Помощь сайту
Юмани:
410011174743222
Перевод на карту
Номер карты:
4048415020898850