Мне нужно сгенерировать строку с n символами в Python. Есть ли один ответ для достижения этой проблемы с существующей библиотекой Python? Например, мне нужна строка из 10 букв:
string_val = 'abcdefghij'
Мне нужно сгенерировать строку с n символами в Python. Есть ли один ответ для достижения этой проблемы с существующей библиотекой Python? Например, мне нужна строка из 10 букв:
string_val = 'abcdefghij'
Чтобы просто повторить одну и ту же букву 10 раз:
string_val = "x" * 10 # gives you "xxxxxxxxxx"
И если вам нужно что-то более сложное, например n
случайные строчные буквы, оно все еще только одна строка кода (не считая операторов импорта и определяющих n
):
from random import choice
from string import lowercase
n = 10
string_val = "".join(choice(lowercase) for i in range(n))
Первые десять строчных букв string.lowercase[:10]
(если вы, конечно, импортировали стандартный библиотечный модуль string
, -).
Другие способы "сделать строку из 10 символов": 'x'*10
(все десять символов будут иметь строчные буквы x
s;-), ''.join(chr(ord('a')+i) for i in xrange(10))
(первые десять строчных букв еще раз) и т.д. и т.д.; -.)
если вам просто нужны буквы:
'a'*10 # gives 'aaaaaaaaaa'
если вам нужны последовательные буквы (до 26):
''.join(['%c' % x for x in range(97, 97+10)]) # gives 'abcdefghij'
Почему "одна строка"? Вы можете поместить что угодно на одну строку.
Предполагая, что вы хотите, чтобы они начинались с 'a' и каждый раз увеличивали на один символ (с оберткой > 26), здесь строка:
>>> mkstring = lambda(x): "".join(map(chr, (ord('a')+(y%26) for y in range(x))))
>>> mkstring(10)
'abcdefghij'
>>> mkstring(30)
'abcdefghijklmnopqrstuvwxyzabcd'
Если вы можете использовать повторяющиеся буквы, вы можете использовать оператор *
:
>>> 'a'*5
'aaaaa'
Это может быть немного не в этом вопросе, но для тех, кто интересуется случайностью генерируемой строки, мой ответ будет следующим:
import os
import string
def _pwd_gen(size=16):
chars = string.letters
chars_len = len(chars)
return str().join(chars[int(ord(c) / 256. * chars_len)] for c in os.urandom(size))
Смотрите эти ответы и random.py
источник для более глубокого понимания.