dxr*_*rth 0 python string random random-sample python-2.7
好的,我正在尝试生成包含特定字符的10个字符的字符串.条件是,字母不能重复(但数字CAN),字符串只能包含两个字母,不多也不少.最终的字符串输出必须是8个数字和2个字母.
numbers = ["1", "2", "3"]
letters = ["X", "Y", "Z"]
Run Code Online (Sandbox Code Playgroud)
即字符串输出应类似于
123X21Y213
Run Code Online (Sandbox Code Playgroud)
问题是,我不知道如何做到这一点,优雅.我确实创建了一个解决方案,但它的行数太多了,它不断检查字符串的前一个字符.我真的很擅长这个,需要更简单的东西.
任何帮助,将不胜感激.
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
Run Code Online (Sandbox Code Playgroud)
或者使用选择和范围:
from random import sample, shuffle,choice
samp = sample(letters,2)+[choice(numbers) for _ in range(8)]
shuffle(samp)
print("".join(samp))
1212ZX1131
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
527 次 |
| 最近记录: |