python course for me
November 5, 2023

Stepik: Списки и операции над ними

Список - упорядоченная коллекция данных.

a = ['Москва', 'Тверь', 'Вологда']
# это список, задается в квадратных скобках

В качестве примера приведем список оценок студентов

marks = [2, 3, 4, 3, 5, 2]

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

sr = (marks[0] + marks[1] + marks[2] + marks[3] + marks[4] + marks[5]) / 6
print(round(sr, 2))
# Вывод: 3.17

Так же можно обращаться к элементам списка в обратном порядке, используя отрицательную нумерацию:

print(marks[-1])
# Вывод: 2 - то есть выведет последний элемент.

В отличии от строк, список относится к изменяемым типам данных. То есть мы можем изменить ранее хранимые значения:

marks = [2, 3, 4, 3, 5, 2]
marks [0] = 3
print(marks)
# Вывод: [3, 3, 4, 3, 5, 2]

Списку, состоящий целиком из чисел, можно присвоить значение любого типа данных:

marks = [3, 3, 4, 3, 5, 2]
marks [1] = 'удовлетворительно'
print(marks)
# Вывод: [3, 'удовлетворительно', 4, 3, 5, 2]

Списки могут содержать самые различные типы данных:

lst = ['Москва', 1320, 5.8, True, 'Тверь', False]
print(lst)

В том числе и другие списки. Элементами списка может быть любой объект языка Python:

lst2 = [1, 2.5, [-1, -2, -3], 4]
print(lst2)
# Вывод: [1, 2.5, [-1, -2, -3], 4]

Если нужно создать пустой список - делается это так:

a = []
# или
b = list() #функция list возвращает соответствующий список
print(b)
# Вывод: []

Но если в списке b = list() указать какой-либо список, то у нас получится на выходе новый список, совершенно незавимый. То есть с помощью list можно создавать копии списков:

b = list([True, False])
print(b)
# Вывод: [True, False]

Если через функцию лист передать строку:

a = list('python')
print(a)
# Вывод: ['p', 'y', 't', 'h', 'o', 'n']

b = ['python', 'best']
print(b)
# Вывод: ['python', 'best']

Функции списков

len() - длина списка

marks = [3, 'удовлетворительно', 4, 3, 5, 2]
print(len(marks))
# Вывод: 6 - 6 элементов в списке

min() и max() - позволяют определять минимальное и максимальное значение списков

t = [23.5, 25.6, 27.3, 26.0, 30.4, 29.5] #температура по дням
print(min(t), max(t))
# Вывод: 23.5 30.4

sum() - вычисляет сумму элементов списка

t = [23.5, 25.6, 27.3, 26.0, 30.4, 29.5]
print(sum(t))
# Вывод: 162.3

# чтобы посчитать среднюю сумму:
print(sum(t) / len(t))
# Вывод: 27.05

sorted() - возвращает отсортированный список на основании имеющегося списка. Главный момент - функция sorted() возвращает новый список

t = [23.5, 25.6, 27.3, 26.0, 30.4, 29.5]

t_sort = sorted(t) # сортировка по возрастанию
print(t_sort)
# Вывод: [23.5, 25.6, 26.0, 27.3, 29.5, 30.4]

t_sort = sorted(t, reverse = True) # сортировка по убыванию
print(t_sort)
# Вывод: [30.4, 29.5, 27.3, 26.0, 25.6, 23.5]

Функции max(), min(), sorted() работают не только с числовыми значениями, но и со строками

s = list('python')

print(s)
# Вывод: ['p', 'y', 't', 'h', 'o', 'n']

print(max(s))
# Вывод: y

print(min(s))
# Вывод: h

print(sorted(s))
# Вывод: ['h', 'n', 'o', 'p', 't', 'y']

Оператор + - объединение списков в один. Объединять можно только списки.

a = [1, 2, 3]
b = [4, 5]
print(a + b)
# Вывод: [1, 2, 3, 4, 5]

print([1, 2, 3] + [4, 5])
# Вывод: [1, 2, 3, 4, 5]

print([4, 5] + [1, 2, 3])
# Вывод: [4, 5, 1, 2, 3]

print([1, 2, 3] + [True])
# Вывод: [1, 2, 3, True]

Оператор * - позволяет дублировать элементы списка

s = ['Я', 'люблю', 'Python']
print(s * 3)
# Вывод: ['Я', 'люблю', 'Python', 'Я', 'люблю', 'Python', 'Я', 'люблю', 'Python']

print(['Я', 'люблю', 'Python'] * 3)
# Вывод: ['Я', 'люблю', 'Python', 'Я', 'люблю', 'Python', 'Я', 'люблю', 'Python']

Так же можно комбинировать эти операторы:

print(['Я'] + ['люблю'] * 3 + ['Python'])
# Вывод: ['Я', 'люблю', 'люблю', 'люблю', 'Python']

Оператор in - проверяет вхождение элемента в список

lst = ['Москва', 1320, 5.8, True, 'Тверь', False]

print(1320 in lst)
# Вывод: True

print(132 in lst)
# Вывод: False

print([1, 2] in lst)
# Вывод: False

print('Москва' in lst)
# Вывод: True

Оператор del - удаляет элемент из списка по его индексу

lst = ['Москва', 1320, 5.8, True, 'Тверь', False]
del lst[2]
print(lst)
# Вывод: ['Москва', 1320, True, 'Тверь', False]

ТЕКСТ ЛЕКЦИИ