我正在寻找从python中的一组字符生成随机单词列表的方法。 问题出在这里:-
它的生成方式是:- a a a ......等等
我想添加随机函数,以便它使用相同的字母随机化来生成相同的长度,例如: a15bef f45acd 9bbac0 ......等等
长度相同但随机的外观。
如何向其中添加随机函数?
#Code
import itertools
chrs = 'abcdef0123456789' # Change your required characters here
n = 6 # Change your word length here
for xs in itertools.product(chrs, repeat=n):
print(''.join(xs))
请帮助我解决它。
答案 0 :(得分:1)
您可以通过random.choice
:
import random
chrs = 'abcdef0123456789'
n = 6
result = ''.join(random.choice(chrs) for _ in range(n))
答案 1 :(得分:0)
''.join(random.choice(‘abcdef0123456789’) for _ in range(N))
这里有一个更安全的加密选项,下面的示例将使用所有小写字母和数字生成随机字符串
''.join(random.SystemRandom().choice(string.ascii_uppercase + string.digits) for _ in range(N))
答案 2 :(得分:0)
itertools.product
将生成所有可能的值。相反,您要从n
中选择chrs
个随机字符并将它们连接起来:
import random
chrs = 'abcdef0123456789' # Change your required characters here
n = 6 # Change your word length here
print(''.join(random.choices(chrs, k=5)))
答案 3 :(得分:0)
我用这样的东西
import random
def generateAWord (length):
i = 0
result = ""
while i < length:
letter = chr(33 + int(93 * random.random()))
result += letter
i +=1
return result
chr内部的33是您想要的第一个ASCII十进制(33代表{!})。 random.random()返回范围[0.0,1.0]中的下一个随机浮点数,因此它乘以0.0-1.0乘以93(例如0.1732 * 93)将得到16,1076(并将其强制转换为int,因此它将以16结尾)。因此93表示从所需的起始ascii十进制数(在这种情况下为33)到所需的最大ascii十进制数(在这种情况下33 + 93为126,即ascii十进制中的{〜})的最大值。
然后chr会将结果转换为char。