голосование
PHP
jQuery
Firebird
BASH
HTML
Ресурсы
GIT
SEO
Oracle
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']
'''
просмотры: 119, уровень: лёгкий уровень, рейтинг: 0, дата: 2017-07-07 13:59:50
проголосовать:

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






поиск
реклама
банеры
домен RU всего за 99 рублей
http://www.2domains.ru домен RU домен RU всего за 99 рублей
http://ping-admin.ru/index_5659.html мониторинг сайтов сервис мониторинга работы сайта, мониторим HTTP, HTTPS, FTP, MYSQL, PostgreSQL, POP3, SMTP, IMAP
https://my.colobridge.net/aff.php?aff=047 серверы vps/vds облачный vps/vds сервер colobridge от 9,9 евро в месяц