生成一个随机字符串,只允许在 python 中重复某些字符
generate a random string with only certain characters allowed to repeat in python
好的,我正在尝试生成包含特定字符的 10 个字符的字符串。
条件是,字母不能重复(但数字可以),并且字符串总共只能包含两个字母,不多也不少。最终的字符串输出必须是 8 个数字和 2 个字母。
numbers = ["1", "2", "3"]
letters = ["X", "Y", "Z"]
即字符串输出应该类似于
123X21Y213
问题是,我不知道如何优雅地做到这一点。
我确实创建了一个解决方案,但它的行太多了,而且需要不断检查字符串的前一个字符。
我真的不擅长这个,需要更简单的东西。
如有任何帮助,我们将不胜感激。
numbers = ["1", "2", "3"]
letters = ["X", "Y", "Z"]
from random import sample, shuffle
samp = sample(letters,2)+sample(numbers*3,8)
shuffle(samp)
print("".join(samp))
113332X2Z2
或使用选项和范围:
from random import sample, shuffle,choice
samp = sample(letters,2)+[choice(numbers) for _ in range(8)]
shuffle(samp)
print("".join(samp))
1212ZX1131
好的,我正在尝试生成包含特定字符的 10 个字符的字符串。 条件是,字母不能重复(但数字可以),并且字符串总共只能包含两个字母,不多也不少。最终的字符串输出必须是 8 个数字和 2 个字母。
numbers = ["1", "2", "3"]
letters = ["X", "Y", "Z"]
即字符串输出应该类似于
123X21Y213
问题是,我不知道如何优雅地做到这一点。 我确实创建了一个解决方案,但它的行太多了,而且需要不断检查字符串的前一个字符。 我真的不擅长这个,需要更简单的东西。
如有任何帮助,我们将不胜感激。
numbers = ["1", "2", "3"]
letters = ["X", "Y", "Z"]
from random import sample, shuffle
samp = sample(letters,2)+sample(numbers*3,8)
shuffle(samp)
print("".join(samp))
113332X2Z2
或使用选项和范围:
from random import sample, shuffle,choice
samp = sample(letters,2)+[choice(numbers) for _ in range(8)]
shuffle(samp)
print("".join(samp))
1212ZX1131