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

2024-10-01 07:36:29 发布

您现在位置:Python中文网/ 问答频道 /正文

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


Tags: 字符串顺序字母序列bfjiph7cddajikfk45kjdk
3条回答

有很多方法可以做到这一点,这是在python3中使用Ascii字符来实现这一点的简单示例代码:-在

from random import randint

def generateString(minLength, maxLength):
    result = "";
    resultLength = randint(minLength, maxLength)
    for i in range(resultLength):
        charType = randint(1,3)

        if(charType == 1):
            #number
            result += chr(randint(48, 57))
        elif(charType == 2):
            #upper letter
            result += chr(randint(65, 90))
        elif(charType == 3):
            #lower letter
            result += chr(randint(97, 122))

    return result;

#Example
print(generateString(1,20))

我能想到的最简单的方法是

from random import randint
a = ''.join(sorted([chr(randint(33,127)) for i in range(randint(1,20))], reverse = False))
print(a)

reverse = True使其下降

最简单的方法是创建N个随机字符串,然后对它们进行排序。在

那么,如何创建一个随机字符串呢?好吧,您还没有指定您的规则是什么,但是您的三个示例是从ASCII小写、大写和数字集合中提取的1到12个字符的字符串,所以让我们这样做。在

length = random.randrange(1, 13)
letters = random.choices(string.ascii_letters + string.digits, k=length)
string = ''.join(letters)

所以,只要做N次,然后分类。在

组合起来:

^{pr2}$

这应该足够简单,您可以自定义它的任何你想要的。想要不区分大小写的排序吗?只需将key=str.upper添加到sorted中。想要其他长度分布吗?只需替换randrange。等等。在

相关问题 更多 >