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']Функции списков
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]