Вместо того, чтобы составлять список букв алфавита, как это:
alpha = ['a', 'b', 'c', 'd'.........'z']
Есть ли способ, которым мы можем сгруппировать его по диапазону или что-то? Например, для чисел его можно сгруппировать, используя range()
:
range(1, 10)
string.ascii_lowercase
(доступно на обоих), а неstring.lowercase
(только на py2)Ответы:
Если вам действительно нужен список:
И сделать это с
range
Другие полезные
string
функции модуля:источник
string.ascii_lowercase[::-1]
map
не возвращаетlist
источник
string.ascii_lowercase
chrange = lambda s: "".join(map(chr, range(*map(ord, s))) + [c[1]])
. Использование:>>> chrange("az") -> 'abcdefghijklmnopqrstuvwxyz'
. Для списка, просто удалите"".join( )
import string
- это длинное объяснение?В Python 2.7 и 3 вы можете использовать это:
Как говорит @Zaz:
string.lowercase
устарела и больше не работает в Python 3, ноstring.ascii_lowercase
работает в обоихисточник
string.ascii_letters
,string.ascii_lowercase
,string.ascii_uppercase
все работы в питоне 3+.list(string.ascii_lowercase)
Вот простая реализация диапазона букв:
Код
демонстрация
источник
Если вы ищете эквивалент
letters[1:10]
из R, вы можете использовать:источник
Печатайте верхний и нижний регистры в Python, используя встроенную функцию range
источник
Это самый простой способ, который я могу понять:
#!/usr/bin/python3 for i in range(97, 123): print("{:c}".format(i), end='')
Таким образом, от 97 до 122 являются числами ASCII, эквивалентными 'a' to и 'z'. Обратите внимание на строчные буквы и необходимость поставить 123, так как он не будет включен).
В функции печати убедитесь, что вы установили
{:c}
(символьный) формат, и, в этом случае, мы хотим, чтобы он печатал все это вместе, даже не пропуская новую строку в конце, такend=''
что сделаем эту работу.Результат таков:
abcdefghijklmnopqrstuvwxyz
источник