Коллекции

Списки

Последнее обновление: 17.01.2024
Упражнение 1

Создайте список из имен-строк. Затем добавьте в этот список два новых имени и удалите последнее имя. Выведите финальный список на консоль.

Пример решения
names = ["Tom", "Bob", "Sam"]
# добавление двух элементов
names.append("Alice")
names.append("Kate")
# удаляем последний элемент
names.pop()
# Вывод списка
print(names)

Упражнение 2

Пусть дан список-матрица, который содержит три списка:

mat = [
    [10, 20, 30],
    [40, 50, 60],
    [70, 80, 80]
]

Выведите всю матрицу в одном выражении.

Выведите по отдельности каждую строку матрицы.

Выведите по отдельности каждый элемент матрицы.

Пример работы программы:

mat:  [[10, 20, 30], [40, 50, 60], [70, 80, 90]]

mat[0]:  [10, 20, 30]
mat[1]:  [40, 50, 60]
mat[2]:  [70, 80, 90]

mat[0][0]:  10
mat[0][1]:  20
mat[0][2]:  30
mat[1][0]:  40
mat[1][1]:  50
mat[1][2]:  60
mat[2][0]:  70
mat[2][1]:  80
mat[2][2]:  90
Решение
mat = [
    [10, 20, 30],
    [40, 50, 60],
    [70, 80, 90]
]
# вывод всей матрицы
print("mat: ", mat)

# вывод строк
print("mat[0]: ", mat[0])
print("mat[1]: ", mat[1])
print("mat[2]: ", mat[2])

# вывод элементов по отдельности
print("mat[0][0]: ", mat[0][0])
print("mat[0][1]: ", mat[0][1])
print("mat[0][2]: ", mat[0][2])
print("mat[1][0]: ", mat[1][0])
print("mat[1][1]: ", mat[1][1])
print("mat[1][2]: ", mat[1][2])
print("mat[2][0]: ", mat[2][0])
print("mat[2][1]: ", mat[2][1])
print("mat[2][2]: ", mat[2][2])

Упражнение 3

Пусть дан список-матрица, который содержит три списка:

mat = [
    [10, 20, 30],
    [40, 50, 60],
    [70, 80, 80]
]

Выведите элементы матрицы с помощью циклов, чтобы получился следующий консольный вывод:

10 20 30
40 50 60
70 80 90
Решение
mat = [
    [10, 20, 30],
    [40, 50, 60],
    [70, 80, 90]
]
# вывод матрицы с помощью цикла
for i in range(3):
    for j in range(3):
        print(mat[i][j], end = " ")
    print() # перевод на другую строку

Упражнение 4

Напишите программу, которая удаляет дубликаты из списка. Пример работы:

Начальный список:  [10, 20, 10, 20, 30, 40, 30, 50]
После удаления дублей:  [10, 20, 30, 40, 50]
Решение
list1 = [10, 20, 10, 20, 30, 40, 30, 50]
# список, который будет содержать уникальные элементы
list2 = []
# перебираем все элементы первого списка
for n in list1:
    if n not in list2:
        list2.append(n)


print ("Начальный список: ", list1)
print ("После удаления дублей: ", list2)

Упражнение 5

Напишите программу, которая с помощью цикла создает список чисел от 1 до 10, а также списки их квадратов и кубов. В конце списки выводятся на консоль. Пример работы:

numbers:  [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
squares:  [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
cubes :  [1, 8, 27, 64, 125, 216, 343, 512, 729, 1000]
Решение
# списки чисел
numbers = []
squares = []
cubes = []
# начальное и конечное значения диапазона
start = 1
end = 10
# цикл добавления чисел в список
for count in range (start, end+1) :
    numbers.append (count)
    squares.append (count**2)
    cubes.append (count**3)


print ("numbers: ",numbers)
print ("squares: ",squares)
print ("cubes : ",cubes)
Упражнение 6

Напишите программу, которая располагает элементы списка в обратном порядке. Пример работы:

Начальный список:  [10, 20, 30, 40, 50]
Список в обратном порядке:  [50, 40, 30, 20, 10]
Решение
# определяем список
list1 = [10, 20, 30, 40, 50]
print ("Начальный список: ", list1)

# обращаем список в обратном порядке
list1 = list1[::-1]
print ("Список в обратном порядке: ", list1)

Упражнение 7

Напишите программу, которая удаляет из списка чисел четные числа. Пример работы:

Начальный список:  [11, 22, 33, 44, 55]
Список с нечетными числами:  [11, 33, 55]
Решение
# исходный список
list = [11, 22, 33, 44, 55]
print ("Начальный список: ", list)

# в цикле перебираем элементы и удаляем те, которые деляться на 2 без остатка
for i in list:
    if(i%2 == 0):
        list.remove(i)
        
print ("Список с нечетными числами: ", list)
Упражнение 8

Напишите функцию, которая принимает два списка и возвращает новый список, в котором каждый элемент представляет сумму соответствующих элементов обоих списков. Пример работы:

Первый список:  [1, 2, 3, 4]
Второй список:  [5, 6, 7, 8]
Результат сложения:  [6, 8, 10, 12]
Решение
def add_two_lists(a, b):
    c = []      # список, где каждый элемент представляет сумму соответствующих элементов списков
    for n, m in zip(a, b):
        c.append(n + m)
    return c

list1 = [1, 2, 3, 4]
list2 = [5, 6, 7, 8]
list3 = add_two_lists(list1, list2)

print("Первый список: ", list1)
print("Второй список: ", list2)
print("Результат сложения: ", list3)
Упражнение 9

Скалярное произведение векторов a (a1, a2, a3, ...aN) и b (b1, b2, b3, ...bN) определяется с помощью формулы:

(a,b) = a1*b1 + a2*b2 + a3*b3 + .... aN*bN

Напишите функцию, которая принимает два вектора - два списка чисел и возвращает скалярное произведение векторов переданных списков. Пример работы:

Первый вектор:  [1, 2, 3, 4]
Второй вектор:  [5, 6, 7, 8]
Скалярное произведение:  70
Решение
def dot(v1, v2):
    c = 0
    for n, m in zip(v1, v2):
        c = c + n * m
    return c

list1 = [1, 2, 3, 4]
list2 = [5, 6, 7, 8]
result = dot(list1, list2)

print("Первый вектор: ", list1)
print("Второй вектор: ", list2)
print("Скалярное произведение: ", result)
Дополнительные материалы
Помощь сайту
Юмани:
410011174743222
Перевод на карту
Номер карты:
4048415020898850