Вложенные списки. Часть 2
Работа с вложенными списками
Что покажет приведенный ниже фрагмент кода?:
list1 = [[1, 2, 3], [4, 5]] list2 = list1 list1[0].append(7) print(list2)
Ответ: [[1, 2, 3, 7], [4, 5]]
Чему будет равно list1[1][1] после выполнения следующего фрагмента кода?:
list1 = [[1] * 3] * 3
list1[0][1] = 5
Ответ: 5
Что покажет приведенный ниже фрагмент кода:
n = 3 list1 = [] for _ in range(n): row = input().split() list1.extend(row) print(list1)
если на вход программе подаются следующие строки?:
9 7 6 2 1 3 4 45 67
Ответ: ['9', '7', '6', '2', '1', '3', '4', '45', '67']
Какой тип данных будет у переменной row?:
my_list = [[1], [2, 3], [4, 5, 6]] total = 0 for row in my_list: total += sum(row) print(total)
Ответ: list
Что покажет приведенный ниже фрагмент кода?:
my_list = [[12, 221, 3], [41, 5, 633], [71, 8, 99]] maximum = my_list[0][0] minimum = my_list[0][0] for row in my_list: maximum = max(row) minimum = min(row) print(maximum + minimum)
Ответ: 107
Что покажет приведенный ниже фрагмент кода?:
my_list = [[12, 221, 3], [41, 5, 633], [71, 8, 99]] maximum = my_list[0][0] minimum = my_list[0][0] for row in my_list: if max(row) > maximum: maximum = max(row) if min(row) < minimum: minimum = min(row) print(maximum + minimum)
Ответ: 636
На вход программе подается число n. Напишите программу, которая создает и выводит построчно список, состоящий из n списков [[1, 2, ..., n], [1, 2, ..., n], ..., [1, 2, ..., n]].
a = int(input()) rez = [[j for j in range(1, a + 1)] for i in range(1, a + 1)] print(*rez, sep='\n')
На вход программе подается число n. Напишите программу, которая создает и выводит построчно вложенный список, состоящий из n списков [[1], [1, 2], [1, 2, 3], ..., [1, 2, ..., n]].
n = int(input()) rez = [] for i in range(1, n + 1): rez.append(list(range(1, i + 1))) print(*rez, sep='\n')
Треугольник Паскаля — бесконечная таблица биномиальных коэффициентов, имеющая треугольную форму. В этом треугольнике на вершине и по бокам стоят единицы. Каждое число равно сумме двух расположенных над ним чисел.
0: 1 1: 1 1 2: 1 2 1 3: 1 3 3 1 4: 1 4 6 4 1 .....
На вход программе подается число n. Напишите программу, которая возвращает указанную строку треугольника Паскаля в виде списка (нумерация строк начинается с нуля).
n = int(input()) s = [] for i in range(n + 1): r = [1] * (i + 1) for j in range(i + 1): if j != i and j != 0: r[j] = s[i - 1][j - 1] + s[i - 1][j] s.append(r)
print(s[n] if n != 0 else [1])
На вход программе подается натуральное число n. Напишите программу, которая выводит первые n строк треугольника Паскаля.
n = int(input()) p = [] for i in range(n): r = [1] * (i + 1) for j in range(i + 1): if j != 0 and j != i: r[j] = p[i - 1][j - 1] + p[i - 1][j] p.append(r) for x in p: print(*x)
На вход программе подается строка текста, содержащая символы. Напишите программу, которая упаковывает последовательности одинаковых символов заданной строки в подсписки.
s = input().split() seq = [[s.pop(0)]] for c in s: if c in seq[-1]: seq[-1].append(c) else: seq.append([c]) print(seq)
На вход программе подаются две строки: на одной – символы, на другой – число n. Из первой строки формируется список. Реализуйте функцию chunked(), которая принимает на вход список и число, задающее размер чанка (куска), а возвращает список из чанков (кусков) указанной длины.
def chunked(t, a): t = t.split() x = [[] for _ in range(0, len(t), a)] for i in range(len(x)): x[i].extend(t[:a]) t = t[a:] return x t = input() a = int(input())
print(chunked(t, a))
Подсписок — часть другого списка. Подсписок может содержать один элемент, несколько или даже ни одного. Например, [1], [2], [3] и [4] — подсписки списка [1, 2, 3, 4]. Список [2, 3] — подсписок списка [1, 2, 3, 4], но список [2, 4] не подсписок списка [1, 2, 3, 4], так как элементы 2 и 4 во втором списке не смежные (они разрываются элементом 3). Пустой список — подсписок любого списка. Сам список — подсписок самого себя, то есть список [1, 2, 3, 4] подсписок списка [1, 2, 3, 4].
На вход программе подается строка текста, содержащая символы. Из данной строки формируется список. Напишите программу, которая выводит список, содержащий все возможные подсписки списка, включая пустой список.
t = input().split() l = [[]] x = 1 while x != len(t) + 1: for i in range(len(t)): if len(t[i : i + x]) == x: l.append(t[i : i + x]) x += 1
print(l)