голосование
BASH
PHP
Javascript
HTML
Программы
Firebird
Майнинг
PostgreSQL
Хостинг
Железо
Ресурсы
GIT
SEO
Oracle
Python
Мобильные технологии
Ремонт
Mercurial
Заработок на сайте
Docker
Проголосуйте за категорию!
счётчик
Яндекс.Метрика

Как сгенерировать списки Python

Часто нужно генерировать списки Python. О списках читайте на странице списки в Python. Можно воспользоваться циклом и написать код в несколько строк. Это старый способ. Хочу показать удобный способ генерации списка. Посмотрите на первый пример. Функция range генерирует список.


#!/usr/bin/python3
#список нечетных чисел от 1 до 99
arr = [c for c in range(1,100) if c % 2 != 0]
print(list(arr))
'''
вывод:
[1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, \
31, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 53, 55, 57, 59,\
 61, 63, 65, 67, 69, 71, 73, 75, 77, 79, 81, 83, 85, 87, 89, 91, 93, 95, 97, 99]
'''

Во втором примере вы видите как генерируется список четных чисел. Я изменил всего лишь один знак ! на =.


#список четных чисел от 2 до 98
arr = [c for c in range(1,100) if c % 2 == 0]
print(list(arr))
'''
вывод:
[2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, \
32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60,\
 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, 86, 88, 90, 92, 94, 96, 98]
'''

Во третьем примере генерируется список без буквы о.


#список символов без буквы о
arr = [c for c in 'больше нет буквы о в этом тексте )' if c != 'о']
print(list(arr))
'''
вывод:
['б', 'л', 'ь', 'ш', 'е', ' ', 'н', 'е', 'т', ' ', 'б', 'у', 'к', 'в', 'ы', \
' ', ' ', 'в', ' ', 'э', 'т', 'м', ' ', 'т', 'е', 'к', 'с', 'т', 'е', ' ', ')']
'''

Во четвёртом примере генерируется список без пробелов.


#список символов без буквы о
arr = [c for c in ' везде гадкие пробелы    .  их надо удалить )  ' if c != ' ']
print(list(arr))
'''
вывод:
['в', 'е', 'з', 'д', 'е', 'г', 'а', 'д', 'к', 'и', 'е',\
 'п', 'р', 'о', 'б', 'е', 'л', 'ы', '.', 'и', 'х', \
'н', 'а', 'д', 'о', 'у', 'д', 'а', 'л', 'и', 'т', 'ь', ')']
'''

Во пятом примере генерируется строка. Я прибавляю к каждому значению разные числа. Каждое значение этого списка - строка


arr = [str(i)+ '-' +str(i+1)+ '-' +str(i+2) for i in range(20) if i > 0]
print(list(arr))
'''
вывод:
['1-2-3', '2-3-4', '3-4-5', '4-5-6', '5-6-7', '6-7-8', '7-8-9', '8-9-10',\
 '9-10-11', '10-11-12', '11-12-13', '12-13-14', '13-14-15', '14-15-16',\
 '15-16-17', '16-17-18', '17-18-19', '18-19-20', '19-20-21']
'''
просмотры: 1393, уровень: лёгкий уровень, рейтинг: 5, дата: 2017-07-07 13:59:50
проголосовать:

Комментарии:






поиск
реклама
банеры
сервис мониторинга работы сайта, мониторим HTTP, HTTPS, FTP, MYSQL, PostgreSQL, POP3, SMTP, IMAP
http://trainingweb.ru/redirect/pingadmin мониторинг сайтов сервис мониторинга работы сайта, мониторим HTTP, HTTPS, FTP, MYSQL, PostgreSQL, POP3, SMTP, IMAP
http://trainingweb.ru/redirect/well_web_vps_kvm Аренда VPS KVM в Европе Мы предлагаем в аренду VPS серверы с выделенным IP-адресом, которые полностью эмулируют физический сервер.
http://trainingweb.ru/redirect/domains домен RU домен RU всего за 99 рублей