파이썬에서 n 문자로 문자열을 생성해야합니다. 기존 Python 라이브러리를 사용하여 한 가지 답변을 얻을 수 있습니까? 예를 들어, 10 글자 문자열이 필요합니다.
string_val = 'abcdefghij'
답변
같은 문자를 10 번 반복하려면 :
string_val = "x" * 10 # gives you "xxxxxxxxxx"
그리고 n
임의의 소문자 와 같이 더 복잡한 것을 원한다면 여전히 한 줄의 코드입니다 (import 문을 세지 않고 정의 n
).
from random import choice
from string import ascii_lowercase
n = 10
string_val = "".join(choice(ascii_lowercase) for i in range(n))
답변
처음 10 개의 소문자는 이전에 string.lowercase[:10]
표준 라이브러리 모듈을 가져온 경우 string
물론입니다.
“문자열을 10 자로 만드는”다른 방법 : 'x'*10
(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'
답변
이것은 약간의 질문 일지 모르지만 생성 된 문자열의 임의성에 관심이있는 사람들에게는 내 대답은 다음과 같습니다.
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
출처를 참조하십시오 .
답변
반복되는 문자를 사용할 수 있으면 *
연산자를 사용할 수 있습니다 .
>>> 'a'*5
'aaaaa'