Как создать список в python
Перейти к содержимому

Как создать список в python

  • автор:

Списки в Python

Здесь мы сохранили 2 переменные, в которых лежат названия фруктов. Но фруктов очень много. Что, если нам нужно работать с сотней таких записей? Например, если у вас интернет-магазин фруктов, придётся хранить очень много фруктов. Не создавать же сотню переменных…

Для таких задач есть списки:

fruits = ["Яблоко", "Банан", "Персик"] 

Список — это как бы способ сохранить много штук (строк, чисел и т.д.) в одной переменной. В этом случае в переменной fruits лежит сразу 3 строки: «Яблоко» , «Банан» и «Персик» .

Теперь, чтобы получить одну из строк в списке — нужно обратиться к ней по индексу. Нумерация в программировании идёт с нуля:

0: “Яблоко”
1: “Банан”
2: “Персик”

Чтобы получить нулевой элемент, мы пишем fruits[0] . Такой код выведет Яблоко :

apple = fruits[0] print(apple) 

Как добавить элемент в список

Бывает такое, что мы хотим добавить в список что-нибудь. Например, в магазине расширился ассортимент и теперь он торгует апельсинами. Добавляет строки в список метод .append() :

new_fruit = "Апельсин" fruits.append(new_fruit) print(fruits) 

Список выведется с новым фруктом: [‘Яблоко’, ‘Банан’, ‘Персик’, ‘Апельсин’] .

Как удалить элемент из списка

Допустим, вы решили перестать торговать бананами. Нужно убрать их из списка. Поможет метод .remove() :

banana = "Банан" fruits.remove(banana) print(fruits) 

Список выведется без банана: [‘Яблоко’, ‘Персик’, ‘Апельсин’] .

Из списка можно удалять элементы по их индексу. Код удалит нулевой элемент списка:

del fruits[0] print(fruits) 

Список выведется без яблока: [‘Персик’, ‘Апельсин’] .

Как создать пустой список

Есть такая штука, как пустой список. Это когда в списке ничего не лежит. Создаётся он так:

empty_list = [] 

Так же, как и список с элементами, только без них. Вот так вот просто. В будущем этот список можно наполнить методом .append() .

Что дальше

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

  • Списки на metanit
  • Списки на pythontutor

Попробуйте бесплатные уроки по Python

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

Переходите на страницу учебных модулей «Девмана» и выбирайте тему.

Списки в Python: методы и основные операции

Рассмотрим создание списков в Python и разберём основные методы. Научимся изменять, сортировать и совершать другие операции над list.

Списки в Python представляют собой упорядоченные изменяемые наборы объектов, пронумерованных от 0. При этом объекты могут быть разными — от целых чисел до строк. Списки могут также хранить в себе списки.

В статье разберёмся с базовыми принципами списков в Питоне, а также рассмотрим методы работы с ними. Если вы изучаете Python с нуля, предлагаем также ознакомиться с дорожной картой для начинающих.

  1. Хранение в памяти
  2. Создание списка
  3. Срезы (slice)
  4. Простые операции
  5. Методы списков

Хранение в памяти

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

numbers = [1, 2] numbers[1] = 3 # обновлённый список: [1, 3] 

До замены элемента последовательности print(numbers[1]) выведет 2, а после замены — 3.

Создание списка в Python

Это можно сделать несколькими способами, например перечислением элементов списка в квадратных скобках:

numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9] 

При этом единица будет на позиции 0, то есть print(numbers[0]) выведет 1.

Также можно использовать обработку итерируемого объекта функцией list() . Пусть у нас будет некоторая строка, тогда:

list('tproger') # ['t', 'p', 'r', 'o', 'g', 'e', 'r'] 

Также существуют генераторы списков, которые позволяют применить заданное выражение к каждому элементу последовательности. Допустим, необходимо создать list, состоящий из чисел от 1 до 5 включительно:

numbers = [i for i in range(1,6)] # [1, 2, 3, 4, 5] 

Срезы (slice) списка

Срезы позволяют получить некое подмножество значений. Следующий код вернёт список с элементами, начиная индексом 0 и не включая при этом индекс 2 и выше:

numbers = [1, 5, 9, 6] print(numbers[0:2]) # вывод [1, 5] 

Далее выведем всё, за исключением элемента на позиции 3:

print(numbers[:3]) # вывод [1, 5, 9] 

А теперь начиная с индекса 1 и до конца:

print(numbers[1:]) # вывод [5, 9, 6] 

Операции над списками Python

  • x in l — true , если элемент x есть в списке l ;
  • x not in l — true , если элемент x отсутствует в l ;
  • l1 + l2 — объединение двух списков;
  • l * n , n * l — копирует список n раз;
  • len(l) — количество элементов в l ;
  • min(l) — наименьший элемент;
  • max(l) — наибольший элемент;
  • sum(l) — сумма чисел списка;
  • for i in list() — перебирает элементы слева направо.

Методы списков Python

Index

Возвращает положение первого совпавшего элемента. Поиск совпадения происходит слева направо. Пример:

numbers = [1, 5, 9, 6, 1, 2, 1] print(numbers.index(1)) # вывод 0: первая найденная единица на позиции 0 

Count

Данный метод считает, сколько раз указанное значение появляется в списке Python:

numbers = [1, 5, 9, 6, 1, 2, 1] print(numbers.count(1)) # вывод 3, потому что единица встречается 3 раза 

Append

Добавляет указанное значение в конец:

numbers = [1, 5, 9, 6] numbers.append(3) # обновлённый список: [1, 5, 9, 6, 3] 

Sort

Сортирует список в Пайтоне. По умолчанию от меньшего к большему:

numbers = [1, 5, 9, 6] numbers.sort() # обновлённый список: [1, 5, 6, 9] 

Также можно сортировать последовательность элементов от большего к меньшему:

numbers = [1, 5, 9, 6] numbers.sort(reverse = true) # обновлённый список: [9, 6, 5, 1] 

Insert

Вставляет элемент перед указанным индексом:

numbers = [1, 5, 9, 6] numbers.insert(3, [2, 3]) # обновлённый список: [1, 5, 9, [2, 3], 6] 

Remove

Удаляет первое попавшееся вхождение элемента в списке Python:

numbers = [1, 5, 9, 6, 1, 2, 1] numbers.remove(1) # обновлённый список: [5, 9, 6, 1, 2, 1] 

Extend

Подобно методу append() , добавляет элементы, но преимущество метода extend() в том, что он также позволяет добавлять списки:

numbers = [1, 5, 9, 6] numbers.extend([2, 3]) # обновлённый список: [1, 5, 9, 6, 2, 3] 

Pop

А данный метод удаляет элемент в конкретно указанном индексе, а также выводит удалённый элемент. Если индекс не указан, метод по умолчанию удалит последний элемент:

numbers = [1, 5, 9, 6] numbers.pop(1) # получаем: # 5 # [1, 9, 6] 

Join

Преобразовывает список в строку. Разделитель элементов пишут в кавычках перед методом, а сам список Питона должен состоять из строк:

mylist = ['сайт', 'типичный', 'программист'] print(', '.join(mylist)) # вывод 'сайт, типичный, программист' 

Следите за новыми постами по любимым темам

Подпишитесь на интересующие вас теги, чтобы следить за новыми постами и быть в курсе событий.

Списки python — функции и методы Python list()

Список в python

В python списки хранят упорядоченный набор элементов, которые могут быть разных типов. В примере, указанном выше элементы имеют один и тот же тип int . Не обязательно все элементы должны быть одного типа.

 
# Создание списка с разными типам данных heterogenousElements = [3, True, 'Витя', 2.0]

Этот список содержит int , bool , string и float .

Доступ к элементам списка

Каждый элемент имеет присвоенный ему индекс. Важно отметить, в python индекс первого элемента в списке — 0.

Элементы списка

 
z = [3, 7, 4, 2] # создаем список # обращение к первому элементу списка с индексом 0 print(z[0]) # элемент с индексом 0 -> 3

Также поддерживается отрицательная индексация. Отрицательная индексация начинается с конца. Иногда её удобнее использовать для получения последнего элемента в списке, потому что не нужно знать длину списка, чтобы получить доступ к последнему элементу.

Отрицательная индексация списка

 
# выведите последний элемент списка >>> print(z[-1]) 2

Вы также можете получить доступ к одному и тому же элементу с использованием положительных индексов (как показано ниже). Альтернативный способ доступа к последнему элементу в списке z .

 
>>> print(z[3]) 2

Срезы(slice) списка

Срезы хороши для получения подмножества значений с вашего списка. На примере кода, приведенного ниже, он вернет список с элементами из индекса 0 и не включая индекс 2.

Срезы списка

 
# Создайте список z = [3, 7, 4, 2] # Вывод элементов с индексом от 0 до 2 (не включая 2) print(z[0:2]) # вывод: [3, 7]

Срезы списка 2

 
# Все, кроме индекса 3 >>> print(z[:3]) [3, 7, 4]

Срезы списка 3

Код, указанный ниже возвращает список с элементами начиная с индекса 1 до конца.

 
# начиная с индекса 1 до конца списка >>> print(z[1:]) [7, 4, 2]

Изменение элементов в списке

Изменение списка

Списки в Python изменяемы. Это означает, что после создания списка можно обновить его отдельные элементы.

 
z = [3, 7, 4, 2] # Создание списка # Изменяем элемент с индексом 1 на строку 'fish' z[1] = 'fish' print(z)
[3, 'fish', 4, 2]

Методы и функции списков python

У списков Python есть разные методы, которые помогают в программировании. В этом разделе рассматриваются все методы списков.

Метод Index

Метод index возвращает положение первого индекса, со значением х . В указанном ниже коде, он возвращает назад 0.

 
# Создайте список >>> z = [4, 1, 5, 4, 10, 4] >>> print(z.index(4)) 0

Индексы списка

Вы также можете указать, откуда начинаете поиск.

 
>>> print(z.index(4, 3)) 3

list index

Метод Count

Метод count работает так, как звучит. Он считает количество раз, когда значение появляется в списке.

 
>>> random_list = [4, 1, 5, 4, 10, 4] >>> print(random_list.count(4)) 3

Метод Sort

метод sort

Метод sort сортирует и меняет исходный список.

 
z = [3, 7, 4, 2] z.sort() print(z)
[2, 3, 4, 7]

Обратная сортировка списка

Вышеуказанный код сортирует список чисел от наименьшего к наибольшему. Код, указанный ниже, показывает, как вы можете сортировать список от наибольшего к наименьшему.

 
# Сортировка и изменение исходного списка от наивысшего к наименьшему z.sort(reverse = True) print(z)
[7, 4, 3, 2]

Следует отметить, что вы также можете отсортировать список строк от А до Я (или A-Z) и наоборот.

 
 
# Сортировка списка строками names = ["Стив", "Рейчел", "Майкл", "Адам", "Джессика", "Лестер"] names.sort() print(names)
['Адам', 'Джессика', 'Лестер', 'Майкл', 'Рейчел', 'Стив']

Метод Append

list append

Метод append добавляет элемент в конец списка. Это происходит на месте.

 
z = [7, 4, 3, 2] z.append(3) print(z)
[7, 4, 3, 2, 3]

Метод Remove

метод remove

 
z = [7, 4, 3, 2, 3] z.remove(2) print(z)

Код удаляет первое вхождение значения 2 из списка z.

[7, 4, 3, 3]

Метод Pop

метод pop

Метод pop удаляет элемент в указанном индексе. Этот метод также вернет элемент, который был удален из списка. В случае, если вы не указали индекс, он по умолчанию удалит элемент по последнему индексу.

 
z = [7, 4, 3, 3] print(z.pop(1)) print(z)
4 [7, 3, 3]

Метод Extend

Метод Extend

Метод extend расширяет список, добавляя элементы. Преимущество над append в том, что вы можете добавлять списки.
Добавим [4, 5] в конец z :

 
z = [7, 3, 3] z.extend([4,5]) print(z)
[7, 3, 3, 4, 5]

То же самое можно было бы сделать, используя + .

 
>>> print([1,2] + [3,4]) [7, 3, 3, 4, 5]

Метод Insert

метод insert

Метод insert вставляет элемент перед указанным индексом.

 
z = [7, 3, 3, 4, 5] z.insert(4, [1, 2]) print(z)
[7, 3, 3, 4, [1, 2], 5]

Простые операции над списками

Метод Описаниее
x in s True если элемент x находится в списке s
x not in s True если элемент x не находится в списке s
s1 + s2 Объединение списков s1 и s2
s * n , n * s Копирует список s n раз
len(s) Длина списка s , т.e. количество элементов в s
min(s) Наименьший элемент списка s
max(s) Наибольший элемент списка s
sum(s) Сумма чисел списка s
for i in list() Перебирает элементы слева направо в цикле for

Примеры использование функций со списками:

 
>>> list1 = [2, 3, 4, 1, 32] >>> 2 in list1 # 2 в list1? True >>> 33 not in list1 # 33 не в list1? True >>> len(list1) # количество элементов списка 5 >>> max(list1) # самый большой элемент списка 32 >>> min(list1) # наименьший элемент списка 1 >>> sum(list1) # сумма чисел в списке 42 # генератор списков python (list comprehension) >>> x = [i for i in range(10)] >>> print(x) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] >>> print(list1.reverse()) # разворачивает список [32, 1, 4, 3, 2]

Операторы + и * для списков

+ объединяет два списка.

 
list1 = [11, 33] list2 = [1, 9] list3 = list1 + list2 print(list3)
[11, 33, 1, 9]

* копирует элементы в списке.

 
list4 = [1, 2, 3, 4] list5 = list4 * 3 print(list5)
[1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4]

Оператор in и not in

Оператор in проверяет находится ли элемент в списке. При успешном результате он возвращает True , в случае неудачи, возвращает False .

 
>>> list1 = [11, 22, 44, 16, 77, 98] >>> 22 in list1 True

Аналогично not in возвращает противоположный от оператора in результат.

 
>>> 22 not in list1 False

Итерация по списку с использованием цикла for

Список — последовательность. Ниже способ, которые вы можете использовать для цикла, чтобы перебрать все элементы списка.

 
list1 = [1,2,3,4,5] for i in list1: print(i, end=" ")
1 2 3 4 5

Преобразование списка в строку

Как преобразовать список в строку?
Для преобразования списка в строку используйте метод join(). В Python это выглядит так:
",".join(["a", "b", "c"]) -> "a,b,c" .
Разделитель пишут в кавычках перед join, в список должен состоять из строк.

Вот несколько полезных советов для преобразования списка в строку (или любого другого итерабельного, такого как tuple ).

Во-первых, если это список строк, вы можете просто использовать join() следующим образом.

 
mylist = ['spam', 'ham', 'eggs'] print(', '.join(mylist))
spam, ham, eggs

Используя тот же метод, вы можете также сделать следующее:

 
>>> print('\n'.join(mylist)) spam ham eggs

Однако этот простой метод не работает, если список содержит не строчные объекты, такие как целые числа. Если вы просто хотите получить строку с разделителями-запятыми, вы можете использовать этот шаблон:

 
list_of_ints = [80, 443, 8080, 8081] print(str(list_of_ints).strip('[]'))
80, 443, 8080, 8081

Или же этот, если ваши объекты содержат квадратные скобки:

 
>>> print(str(list_of_ints)[1:-1]) 80, 443, 8080, 8081

В конце концов, вы можете использовать map() чтобы преобразовать каждый элемент в список строки и затем присоединиться к ним:

 
>>> print(', '.join(map(str, list_of_ints))) 80, 443, 8080, 8081 >>> print('\n'.join(map(str, list_of_ints))) 80 443 8080 8081

Тест на знание списков в Python

Как создать список?
Все варианты верны
l = list(1, 2, 3)
l = list[1, 2, 3]
Что выведет этот код:

a = [ 1, 342, 223, 'Африка', 'Очки']
print(a[-3])

Что выведет этот код:

sample = [10, 20, 30]
sample.append(60)
sample.insert(3, 40)
print(sample)

[10, 20, 30, 40, 60]
[60, 10, 20, 30, 40]
[10, 20, 30, 60, 40]
[10, 20, 30, 40]
Что выведет этот код:

lake = ["Python", 51, False, "22"]
lake.reverse()
lake.reverse()
print(lake[-2])

Что из перечисленного правда?
Элементы списка не могут повторятся
Мы можем вставить элемент на любую позицию в списке
Все элементы списка должны быть одного типа
Список не может содержать вложенных списков
Как получить ['bar', 'baz'] из списка

a = ['foo', 'bar', 'baz', 'qux', 'quux']

print(a[1], a[2])
Как получить 'bar' из списка

x = [10, [3.141, 20, [30, 'baz', 2.718]], 'foo']

Как избавиться от "3" в списке a = [1, 3, 5] и получить [1, 5] ?
С помощью какого метода можно добавить сразу два элемента в список?
Что вернет этот код [1, 2] * 3 ?
[[1, 2], [1, 2], [1, 2]]
[1, 2, 1, 2, 1, 2]
Поделитесь своим результатом через
Play again

Я создал этот блог в 2018 году, чтобы распространять полезные учебные материалы, документации и уроки на русском. На сайте опубликовано множество статей по основам python и библиотекам, уроков для начинающих и примеров написания программ.

Мои контакты: Почта
Python Q https://yandex.ru/q/loves/python Online

Python Q CEO Pythonru admin@pythonru.com https://secure.gravatar.com/avatar/b16f253879f7349f64830c64d1da4415?s=96&d=mm&r=g CEO Pythonru Python Александр Редактор https://t.me/cashncarryhttps://pythonru.com/https://yandex.ru/q/profile/cashnc/ PythonRu.com admin@pythonru.com Alex Zabrodin 2018-10-26 Online Python, Programming, HTML, CSS, JavaScript

Списки в Python: что это такое и как с ними работать

Рассказали всё самое важное о списках для тех, кто только становится «змееустом».

Иллюстрация: Оля Ежак для Skillbox Media

Дмитрий Зверев

Дмитрий Зверев

Любитель научной фантастики и технологического прогресса. Хорошо сочетает в себе заумного технаря и утончённого гуманитария. Пишет про IT и радуется этому.

Сегодня мы подробно поговорим о, пожалуй, самых важных объектах в Python — списках. Разберём, зачем они нужны, как их использовать и какие удобные функции есть для работы с ними.

В статье есть всё, что начинающим разработчикам нужно знать о списках в Python:

  • Что это такое
  • Как создавать списки в Python
  • Какие с ними можно выполнять операции
  • Как работать совстроенными функциями
  • Какие вPython есть методы управления элементами

Что такое списки

Список (list) — это упорядоченный набор элементов, каждый из которых имеет свой номер, или индекс, позволяющий быстро получить к нему доступ. Нумерация элементов в списке начинается с 0: почему-то так сложилось в C, а C — это база. Теорий на этот счёт много — на «Хабре» даже вышло большое расследование 🙂

В одном списке одновременно могут лежать данные разных типов — например, и строки, и числа. А ещё в один список можно положить другой и ничего не сломается:

Все элементы в списке пронумерованы. Мы можем без проблем узнать индекс элемента и обратиться по нему.

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

Когда мы создаём объект list, в памяти компьютера под него резервируется место. Нам не нужно переживать о том, сколько выделяется места и когда оно освобождается, — Python всё сделает сам. Например, когда мы добавляем новые элементы, он выделяет память, а когда удаляем старые — освобождает.

Под капотом списков в Python лежит структура данных под названием «массив». У массива есть два важных свойства: под каждый элемент он резервирует одинаковое количество памяти, а все элементы следуют друг за другом, без «пробелов».

Однако в списках Python можно хранить объекты разного размера и типа. Более того, размер массива ограничен, а размер списка в Python — нет. Но всё равно мы знаем, сколько у нас элементов, а значит, можем обратиться к любому из них с помощью индексов.

И тут есть небольшой трюк: списки в Python представляют собой массив ссылок. Да-да, решение очень элегантное — каждый элемент такого массива хранит не сами данные, а ссылку на их расположение в памяти компьютера!

Как создать список в Python

Чтобы создать объект list, в Python используют квадратные скобки — []. Внутри них перечисляют элементы через запятую:

Операции со списками

Если просто хранить данные в списках, то от них будет мало толку. Поэтому давайте рассмотрим, какие операции они позволяют выполнить.

Индексация

Доступ к элементам списка получают по индексам, через квадратные скобки []:

Каждый элемент списка имеет четыре секции: свой адрес, данные, адрес следующего элемента и адрес предыдущего. Если мы получили доступ к какому-то элементу, мы без проблем можем двигаться вперёд-назад по этому списку и менять его данные.

Поэтому, когда мы присвоили списку b список a, то на самом деле присвоили ему ссылку на первый элемент — по сути, сделав их одним списком.

Объединение списков

Иногда полезно объединить два списка. Чтобы это сделать, используют оператор +:

insert()

Добавляет новый элемент по индексу:

clear()

Удаляет все элементы из списка и делает его пустым:

a = [1, 2, 3] a.clear() print(a) >>> []

index()

Возвращает индекс элемента списка в Python:

a = [1, 2, 3] print(a.index(2)) >>> 1 

Если элемента нет в списке, выведется ошибка:

a = [1, 2, 3] print(a.index(4)) Traceback (most recent call last): File "", line 1, in ValueError: 4 is not in list

pop()

Удаляет элемент по индексу и возвращает его как результат:

a = [1, 2, 3] print(a.pop()) print(a) >>> 3 >>> [1, 2]

Мы не передали индекс в метод, поэтому он удалил последний элемент списка. Если передать индекс, то получится так:

a = [1, 2, 3] print(a.pop(1)) print(a) >>> 2 >>> [1, 3]

count()

Считает, сколько раз элемент повторяется в списке:

a = [1, 1, 1, 2] print(a.count(1)) >>> 3 

sort()

a = [4, 1, 5, 2] a.sort() # [1, 2, 4, 5]

Если нам нужно отсортировать в обратном порядке — от большего к меньшему, — в методе есть дополнительный параметр reverse:

a = [4, 1, 5, 2] a.sort(reverse=True) # [5, 4, 2, 1]

reverse()

Переставляет элементы в обратном порядке:

a = [1, 3, 2, 4] a.reverse() # [4, 2, 3, 1]

copy()

a = [1, 2, 3] b = a.copy() print(b) >>> [1, 2, 3]

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

Метод Что делает
a.append(x) Добавляет элемент x в конец списка a. Если x — список, то он появится в a как вложенный
a.extend(b) Добавляет в конец a все элементы списка b
a.insert(i, x) Вставляет элемент x на позицию i
a.remove(x) Удаляет в a первый элемент, значение которого равно x
a.clear() Удаляет все элементы из списка a и делает его пустым
a.index(x) Возвращает индекс элемента списка
a.pop(i) Удаляет элемент по индексу и возвращает его
a.count(x) Считает, сколько раз элемент повторяется в списке
a.sort() Сортирует список. Чтобы отсортировать элементы в обратном порядке, нужно установить дополнительный аргумент reverse=True
a.reverse() Возвращает обратный итератор списка a
a.copy() Создаёт поверхностную копию списка. Для создания глубокой копии используйте метод deepcopy из модуля copy

Что запомнить

Лучше не учить это всё, а применять на практике. А ещё лучше — попытаться написать каждый метод самостоятельно, не используя никакие встроенные функции.

Сколько бы вы ни писали код на Python, всё равно придётся подсматривать в документацию и понимать, какой метод что делает. И для этого есть разные удобные сайты — например, полный список методов можно посмотреть на W3Schools.

Больше интересного про код в нашем телеграм-канале. Подписывайтесь!

Читайте также:

  • Как изучить Python самостоятельно и бесплатно: алгоритм
  • Тест: сможете отличить Zen of Python от философии Лао-цзы?
  • Rust: зачем он нужен, где применяется и за что его все любят

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *