Jython 随机字符串生成
我需要写一个方法,能够根据给定的长度返回一个随机字符串,用的是jython。如果我能用python的随机功能,那就简单多了,但我找不到办法,因为我看到的每个随机示例都是用java的随机类,而不是python的。
这是我写的代码片段:
def getrstr (self, length):
from java.util import Random
import string
chars = string.letter + string.digits
str = ''
for i in range(1, (length+1)):
ind = random.nextInt(62) #there should be 62 charicters in chars string
c = #this is the part where i should get radom char from string using ind
str = str + c
return str
我想根据一个包含所有需要字符的字符串来生成新的字符串。但我就是找不到像在C#中那样通过索引访问字符串中字符的方法。
有没有什么办法可以做到这一点,或者甚至导入python的随机类呢?
2 个回答
2
试试这个,Jython下对我有效:
def getrstr(self, length):
import random, string
seq = string.letters + string.digits
randomstr = []
for i in xrange(length):
randomstr.append(random.choice(seq))
return ''.join(randomstr)
注意我使用的是Jython的 random
模块,而不是Java的 Random
类。还有一个更简短的版本,使用列表推导和模块级导入(按照pep-8的规范):
import random, string
def getrstr(self, length):
seq = string.letters + string.digits
return ''.join(random.choice(seq) for _ in xrange(length))
2
c = chars.charAt(ind);
JavaDocs 是一个很好的参考资料。