Введение в списки
Организация данных, для эффективной работы с ними.
При работе с данными вам нужен способ организовать данные, чтобы вы могли эффективно с ними работать. В Python есть много структур данных, доступных для хранения ваших данных, таких как списки, наборы, словари и кортежи. В этом руководстве вы узнаете, как работать со списками Python.
Постановка задачи
Предположим нам нужно классифицировать виды цветков растений. Для достижения этой цели, мы организуем названия видов цветов в данных.
Один из способов сделать это — организовать имена в строку Python.
flowers = "розовая примула, орхидея с жесткими листьями, кентерберийские колокольчики, душистый горошек, бархатцы, тигровая лилия, лунная орхидея, райская птица, аконит, чертополох"
print(type(flowers)) #<class 'str'>
print(flowers) #розовая примула, орхидея с жесткими листьями, кентерберийские колокольчики, душистый горошек, бархатцы, тигровая лилия, лунная орхидея, райская птица, аконит, чертополох
Еще лучше представить те же данные в списке Python. Чтобы создать список, вам нужно использовать квадратные скобки ([, ]) и разделять каждый элемент запятой. Каждый элемент в списке является строкой Python, поэтому каждый заключен в кавычки.
flowers_list = ["розовая примула", "карманная орхидея с жесткими листьями", "колокольчики кентербери", "душистый горошек", "календула", "тигровая лилия", "лунная орхидея", "райская птица", "аконит", "чертополох"]
print(type(flowers_list)) #<class 'list'>
print(flowers_list) #['розовая примула', 'жестколистная карманная орхидея', 'колокольчики кентербери', 'душистый горошек', 'английские бархатцы', 'тигровая лилия', 'лунная орхидея', 'райская птица', 'аконит', 'чертополох']
На первый взгляд, данные не сильно отличается между собой, представляете ли вы информацию в строке Python или списке. Но, как вы увидите, есть много задач, которые вам будет проще выполнить с помощью списка. Например, список облегчит:
- получить элемент в указанной позиции (первый, второй, третий и т. д.),
- проверить количество элементов
- добавить и удалить элементы.
Списки
Длинна
Мы можем подсчитать количество записей в любом списке с помощью len(), что является сокращением от "length". Вам нужно только указать имя списка в скобках.
# Список содержит десять записей.
print(len(flowers_list)) #10
Индексация
Мы можем ссылаться на любой элемент в списке в соответствии с его позицией в списке (первый, второй, третий и т. д.). Это называется индексированием.
Обратите внимание, что Python использует индексирование с нулевой отметкой, что означает, что:
- чтобы извлечь первую запись в списке, вы используете 0
- чтобы извлечь вторую запись в списке, вы используете 1
- чтобы извлечь последнюю запись в списке, вы используете на единицу меньше длины списка.
print("Первый элемент:", flowers_list[0]) #Первый элемент: розовая примула
print("Второй элемент:", flowers_list[1]) #Второй элемент: орхидея карманная с жесткими листьями
# Длина списка равна десяти, поэтому мы ссылаемся на последнюю запись с номером 9.
print("Последний элемент:", flowers_list[9]) #Последний элемент: чертополох
Срез (slice)
Вы также можете вытащить сегмент списка (например, первые три записи или последние две записи). Это называется срезом.
Например:
- чтобы вытащить первые x записей, вы используете [:x]
- чтобы вытащить последние y записей, вы используете [-y:]
print("Первые три записи:", flowers_list[:3]) #Первые три записи: ['розовая примула', 'жестколистная карманная орхидея', 'колокольчики кентербери']
print("Последние две записи:", flowers_list[-2:]) #Последние две записи: ['аконит', 'чертополох']
Как вы можете видеть выше, когда мы разрезаем список, возвращается новый, сокращенный список.
Удаление элементов
Удалите элемент из списка с помощью .remove() и заключите элемент, который хотите удалить, в скобки.
flowers_list.remove("чертополох")
print(flowers_list) #['розовая примула', 'карманная орхидея с жесткими листьями', 'колокольчики кентербери', 'душистый горошек', 'английские бархатцы', 'тигровая лилия', 'лунная орхидея', 'райская птица', 'аконит']
Добавление элементов
Добавьте элемент в список с помощью .append() и поместите элемент, который вы хотите добавить, в скобки.
flowers_list.append("львиный зев")
print(flowers_list) #['розовая примула', 'карманная орхидея с жесткими листьями', 'колокольчики кентербери', 'душистый горошек', 'календула', 'тигровая лилия', 'лунная орхидея', 'райская птица', 'аконит', 'львиный зев']
Списки предназначены не только для строк
До сих пор мы работали только со списками, где каждый элемент списка является строкой. Но списки могут иметь элементы с любым типом данных, включая логические значения, целые числа и числа с плавающей точкой.
В качестве примера рассмотрим продажи книг в твердом переплете в первую неделю апреля 2000 года в розничном магазине.
hardcover_sales = [139, 128, 172, 139, 191, 168, 170]
Здесь hardcover_sales — это список целых чисел. Подобно работе со строками, вы все еще можете делать такие вещи, как получение длины, извлечение отдельных записей и расширение списка.
print("Длина списка:", len(hardcover_sales)) #Длина списка: 7
print("Запись с индексом 2:", hardcover_sales[2]) #Запись c индексом 2: 172
Вы также можете получить минимум с помощью min() и максимум с помощью max().
print("Minimum:", min(hardcover_sales)) #Minimum: 128
print("Maximum:", max(hardcover_sales)) #Maximum: 191
Чтобы добавить все элементы в список, используйте функцию sum().
print("Всего продано книг за одну неделю:", sum(hardcover_sales))
#Всего продано книг за одну неделю: 1107
Мы также можем сделать аналогичные вычисления с фрагментами списка. В следующей ячейке кода мы берем сумму за первые пять дней (sum(hardcover_sales[:5])), а затем делим на пять, чтобы получить среднее количество проданных книг за первые пять дней.
print("Среднее количество проданных книг за первые пять дней:", sum(hardcover_sales[:5])/5)
Среднее количество проданных книг за первые пять дней: 153,8