我需要在Python中生成一个包含n个字符的字符串.有没有一个答案可以用现有的Python库实现这一目标?例如,我需要一个10个字母的字符串:
string_val = 'abcdefghij'
Run Code Online (Sandbox Code Playgroud)
Eli*_*ght 279
简单地重复相同的字母10次:
string_val = "x" * 10 # gives you "xxxxxxxxxx"
Run Code Online (Sandbox Code Playgroud)
如果你想要一些更复杂的东西,比如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))
Run Code Online (Sandbox Code Playgroud)
前十个小写字母是string.lowercase[:10](如果您之前导入了标准库模块string,当然;-).
"制作一个10个字符的字符串"的其他方法:( 'x'*10所有十个字符将是小写的xs ;-),, ''.join(chr(ord('a')+i) for i in xrange(10))(前十个小写字母)等等;-).
如果你只想要任何字母:
'a'*10 # gives 'aaaaaaaaaa'
Run Code Online (Sandbox Code Playgroud)
如果您想要连续的字母(最多 26 个):
''.join(['%c' % x for x in range(97, 97+10)]) # gives 'abcdefghij'
Run Code Online (Sandbox Code Playgroud)
为什么是“一行”?您可以将任何东西放在一条线上。
假设您希望它们以 'a' 开头,并且每次增加一个字符(换行 > 26),下面是一行:
>>> mkstring = lambda(x): "".join(map(chr, (ord('a')+(y%26) for y in range(x))))
>>> mkstring(10)
'abcdefghij'
>>> mkstring(30)
'abcdefghijklmnopqrstuvwxyzabcd'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
158020 次 |
| 最近记录: |