我需要制作随机字符串序列,该序列增加(减少)字母顺序。例如:“ ajikfk45kJDk”,“ bFJIPH7CDd”,“ c”。
答案 0 :(得分:0)
我能想到的最简单的方法是
from random import randint
a = ''.join(sorted([chr(randint(33,127)) for i in range(randint(1,20))], reverse = False))
print(a)
reverse = True
降序
答案 1 :(得分:0)
最简单的方法是创建N个随机字符串,然后对其进行排序。
那么,如何创建随机字符串?好的,您尚未指定规则,但是您的三个示例是从ASCII小写,大写和数字集中提取的1到12个字符的字符串,所以让我们这样做。
length = random.randrange(1, 13)
letters = random.choices(string.ascii_letters + string.digits, k=length)
string = ''.join(letters)
因此,只需进行N次操作,然后对其进行排序即可。
将它们放在一起:
chars = string.ascii_letters + string.digits
def make_string():
return ''.join(random.choices(chars, k=random.randrange(1, 13)))
def make_n_strings(n):
return sorted(make_string() for _ in range(n))
这应该足够简单,您可以根据需要自定义它。是否需要不区分大小写的排序?只需将key=str.upper
添加到sorted
。是否需要其他长度分配?只需更换randrange
。依此类推。
答案 2 :(得分:0)
有很多方法可以做到这一点,这是一个使用Ascii字符代码在 Python 3 中实现这一目标的简单示例:-
tJavaFlex
答案 3 :(得分:0)
您可以循环使用 chr() Python 3函数,同时在所需的ASCII类别范围内生成随机数。
您可以在此处或在维基百科上找到所有ASCII categories。
例如:
chr(99)
-> equals c
有关Python 3 official documentation上chr()函数的更多信息。