python course for me
November 7, 2023

Stepik: Вложенные списки, многомерные списки

# одномерный список
line = [1, 7, 6, 11, 3]

# двумерный список
img = [[1, 7, 6, 11, 3], [1, 7, 6, 11, 3], [1, 7, 6, 11, 3], [1, 7, 6, 11, 3], [1, 7, 6, 11, 3]]

Можно обращаться к каждому элементу каждого подсписка

img = [[1, 7, 6, 11, 3], [1, 7, 6, 11, 3], [1, 7, 6, 11, 3], [1, 7, 6, 11, 3], [1, 7, 6, 11, 3]]
print(img[0][1])
# Вывод: 7

Так же можно заменить каждый подсписок и каждый элемент подсписка

img = [[1, 7, 6, 11, 3], [1, 7, 6, 11, 3], [1, 7, 6, 11, 3], [1, 7, 6, 11, 3], [1, 7, 6, 11, 3]]
img[1] = [0, 0, 0, 0, 0]
print(img)
# Вывод: [[1, 7, 6, 11, 3], [0, 0, 0, 0, 0], [1, 7, 6, 11, 3], [1, 7, 6, 11, 3], [1, 7, 6, 11, 3]]

img[1][0] = [[1, 7, 6, 11, 3], [1, 0, 0, 0, 0], [1, 7, 6, 11, 3], [1, 7, 6, 11, 3], [1, 7, 6, 11, 3]]
print(img)
# Вывод: 7
# Можно было записать еще и таким способом:

img = [[1, 7, 6, 11, 3], [1, 7, 6, 11, 3], [1, 7, 6, 11, 3], [1, 7, 6, 11, 3], [1, 7, 6, 11, 3]]
img[1] = [0] * 5
print(img)
# Вывод: [[1, 7, 6, 11, 3], [0, 0, 0, 0, 0], [1, 7, 6, 11, 3], [1, 7, 6, 11, 3], [1, 7, 6, 11, 3]]

В случае img[1] = [0] * 5 мы заменили полностью второй подсписок на новый. Если нужно заменить элементы подсписка полностью на другие, то делается это через срез

img = [[1, 7, 6, 11, 3], [1, 7, 6, 11, 3], [1, 7, 6, 11, 3], [1, 7, 6, 11, 3], [1, 7, 6, 11, 3]]
img[1][:] = [1] * 5
print(img)
# Вывод: [[1, 7, 6, 11, 3], [1, 1, 1, 1, 1], [1, 7, 6, 11, 3], [1, 7, 6, 11, 3], [1, 7, 6, 11, 3]]

Вложенные списки

t = [ ['Люблю', 'тебя', 'Петра', 'творенье'],
      ['Люблю', 'твой', 'строгий', 'стройный', 'вид'],
      ['Невы', 'державное', 'теченье'],
      ['Береговой', 'ее', 'гранит']
      ]
print(t)

Можно применить следующие методы

print(t[0])
# Вывод: ['Люблю', 'тебя', 'Петра', 'творенье']

print(t[0][2])
# Вывод: Петра

t[0][2] = 'Python'
print(t[0])
# Вывод: ['Люблю', 'тебя', 'Python', 'творенье']

t.append(['Твоих', 'оград', 'узор', 'чугунный'])
print(t)
# Вывод: [['Люблю', 'тебя', 'Python', 'творенье'], ['Люблю', 'твой', 'строгий', 'стройный', 'вид'], ['Невы', 'державное', 'теченье'], ['Береговой', 'ее', 'гранит'], ['Твоих', 'оград', 'узор', 'чугунный']]

del t[1]
print(t)
# Вывод: [['Люблю', 'тебя', 'Python', 'творенье'], ['Невы', 'державное', 'теченье'], ['Береговой', 'ее', 'гранит'], ['Твоих', 'оград', 'узор', 'чугунный']]

Пример многомерного списка с разными уровнями вложенности

A = [[[True, False], [1, 2, 3]], ['матрица', 'вектор']]
print(A)
# Вывод: [[[True, False], [1, 2, 3]], ['матрица', 'вектор']]

print(A[0], A[1])
# Вывод: [[True, False], [1, 2, 3]] ['матрица', 'вектор']

print(A[0][1][0])
# Вывод: 1

ТЕКСТ ЛЕКЦИИ