我需要在Python中生成一个包含n个字符的字符串。有没有一个答案可以用现有的Python库实现这一目标?例如,我需要一个10个字母的字符串:
string_val = 'abcdefghij'
答案 0 :(得分:245)
简单地重复相同的字母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))
答案 1 :(得分:9)
前十个小写字母为string.lowercase[:10]
(如果您先前已导入标准库模块string
; - )。
“制作10个字符的字符串”的其他方法:'x'*10
(所有十个字符都是小写x
s ;-), ''.join(chr(ord('a')+i) for i in xrange(10))
(前十个小写字母再次)等等; - )。
答案 2 :(得分:4)
如果您只想要任何字母:
'a'*10 # gives 'aaaaaaaaaa'
如果你想要连续的字母(最多26个):
''.join(['%c' % x for x in range(97, 97+10)]) # gives 'abcdefghij'
答案 3 :(得分:3)
为什么“一行”?你可以将任何东西放在一行上。
假设你希望它们以'a'开头,并且每次增加一个字符(包裹> 26),这里有一行:
>>> mkstring = lambda(x): "".join(map(chr, (ord('a')+(y%26) for y in range(x))))
>>> mkstring(10)
'abcdefghij'
>>> mkstring(30)
'abcdefghijklmnopqrstuvwxyzabcd'
答案 4 :(得分:2)
如果您可以使用重复的字母,则可以使用*
运算符:
>>> 'a'*5
'aaaaa'
答案 5 :(得分:1)