如何在python中生成随机的递增或递减字符串?

时间:2018-07-26 22:09:30

标签: python random

我需要制作随机字符串序列,该序列增加(减少)字母顺序。例如:“ ajikfk45kJDk”,“ bFJIPH7CDd”,“ c”。

4 个答案:

答案 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()函数的更多信息。