Python随机选择重复

时间:2018-12-04 13:27:36

标签: python string python-3.x random

因此,我正在创建一个简单的脚本,其中涉及创建随机的字母字符串。我当前正在使用此代码,它可以工作,但不是我需要它工作的方式。它不会输出我需要的任何重复字母

for i in range(x):
  letter=random.choice(string.ascii_letters)
  string+=letter
print(string)

问题是我没有真正需要它们的重复项才能使此代码正常工作。 我已经看到了如何解决数字问题,但没有解决字母问题。 任何解决方案都将不胜感激。

4 个答案:

答案 0 :(得分:0)

这确实对我有用

x=20
''.join(random.choice(string.ascii_letters.lower()) for y in range(x))

输出:

'xbzxxixfwowvitbimxwj'

答案 1 :(得分:0)

您的代码应该可以正常工作。如果我运行它,我会得到重复。将会改善的地方是使用相关函数来生成多个随机选择random.choices

要获取20个字母的字符串:

required_length = 20
s = ''.join(random.choices(string.ascii_letters,k=required_length))

答案 2 :(得分:0)

您可以精确控制重复次数:

import string, random

nbletters=10
nbduplicates=3
assert nbletters >= 2*nbduplicates 

base=list(string.ascii_letters)
random.shuffle(base)
result=base[:nbduplicates]*2+base[2*nbduplicates:nbletters]
random.shuffle(result)
print("".join(result))

示例:

VsAkVglkRs
vuWkrsJrvW
TTjbcYcjEG
ImFKFIqTgm
BCVpmFvFVC
LCOzJCJmmH

答案 3 :(得分:-1)

@Dominic。这是对您的代码的修改,使之有意义:

User