Создать спискок Python

Содержание
Введение
С помощью цикла for
С помощью list()
list comprehension: абстракция списка
Из строки с помощью .split()
Похожие статьи

Введение

Эта статья является дополнением к статьи «Списки в Python» из неё вы можете узнать о различных способах создавать списки в Python.

генератор (абстракция) списка выделен в отдельную статью.

С помощью []

Если нужно просто изменить тип переменной со строки на список достаточно заключить строку в квадратные скобки.

site = "testsetup.ru" print(type(site)) site = [site] print(type(site))

python str_to_list.py

<class 'str'> <class 'list'>

С помощью цикла for

Можно использовать цикл for для создания списка.

Это делается за три шага

  1. Создать пустой список
  2. Пройтись по итерируемому объекту или нескольким объектам.
  3. Дописать каждый элемент в конец списка

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

>>> squares = [] >>> for i in range(10): ... squares.append(i * i) >>> squares

Или даже в двух

>>> squares = [] >>> for i in range(10): squares.append(i * i) >>> squares

[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

Сперва создаётся пустой список, squares.

Затем, с помощью цикла for происходит итерация по range(10).

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

С помощью list()

Из итерируемого объекта range()

lst = list(range(10)) print(lst)

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

Из строки

lst = list("testsetup.ru") print(lst)

['t', 'e', 's', 't', 's', 'e', 't', 'u', 'p', '.', 'r', 'u']

Из кортежа

lst = list((1, 2, 3)) print(lst)

[1, 2, 3]

Из множества

lst = list({1, 2, 3}) print(lst)

[1, 2, 3]

Из словаря в список попадут ключи

lst = list({"a": 1, "b": 2, "c": 3}) print(lst)

['a', 'b', 'c']

Из другого списка - тогда будет создана копия объекта.

a = [1, 2, 3] b = list(a) print(id(a) == id(b))

False

map()

Функция map() не возвращает список, она возвращат объект класса <class 'map'> но всё равно хочу упомянуть её в контексте создания списков. Хотя бы в связке с list()

map() предоставляет альтернативный подход, основанный на функциональном программировании.

В map() передаются функция и итерируемый объект и map() создаёт новый итерируемый объект.

o = map(function, iterable)

Этот объект содежит вывод, который мог бы получится если бы к каждому элементу изначального итерируемого объекта применили данную функцию.

В качестве первого примера снова создадим список полных квадратов

def square(x): return x * x lst = map(square, range(10)) print(*lst)

0 1 4 9 16 25 36 49 64 81

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

txns = [1.11, 23.45, 45.5, 61.4] TAX_RATE = .08 def get_price_with_tax(txn): return txn * (1 + TAX_RATE) final_prices = map(get_price_with_tax, txns) print(list(final_prices))

[1.1988, 25.326, 49.14, 66.312]

Здесь есть итеративный txns и функция get_price_with_tax(). Оба этих аргумента передаём в map() и сохраним результирующий объект в final_prices.

Можено легко преобразовать этот map объект в список с помощью функции list().

Абстракция списка

List Comprehension - Абстракция списков или списковое включение или генератор списков.

Третий способ создавать списки это абстракция списков.

С помощью этого элегантного похода можно переписать цикл for из первого примера всего в одну строку:

>>> squares = [i * i for i in range(10)] >>> squares

[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

Подробнее про этот способ вы можете прочитать в статье «List Comprehension в Python»

Из строки с помощью .split()

Создать список из строки можно с помощью метода split()

s = 'Please visit website' print(s) lst = s.split() print(lst)

Please visit website ['Please', 'visit', 'website']

Автор статьи: Андрей Олегович

Похожие статьи
Встроенные коллекции
Списки []
Создать список
list comprehension: Генератор списков
Задачи
if, elif, else
Циклы
Генератор словарей
Генератор множеств

Поиск по сайту

Подпишитесь на Telegram канал @aofeed чтобы следить за выходом новых статей и обновлением старых

Перейти на канал

@aofeed

Задать вопрос в Телеграм-группе

@aofeedchat

Контакты и сотрудничество:
Рекомендую наш хостинг beget.ru
Пишите на info@urn.su если Вы:
1. Хотите написать статью для нашего сайта или перевести статью на свой родной язык.
2. Хотите разместить на сайте рекламу, подходящую по тематике.
3. Реклама на моём сайте имеет максимальный уровень цензуры. Если Вы увидели рекламный блок недопустимый для просмотра детьми школьного возраста, вызывающий шок или вводящий в заблуждение - пожалуйста свяжитесь с нами по электронной почте
4. Нашли на сайте ошибку, неточности, баг и т.д. ... .......
5. Статьи можно расшарить в соцсетях, нажав на иконку сети: