我试图找到一种更有效的方法,从大型库中选择某个加扰序列

我正在将Python用于一个项目,对于该项目的一部分,我需要获得一个字符串库的混乱排列,并将其输入到方法中。我想得到一个可复制的结果,所以我目前正在使用itertools库的排列方法,然后循环遍历它,直到我达到某个排列。然而,循环浏览一堆时间显然不是最好的时间,特别是对于与更多元素(20 +)的混战。有没有一个以前使用过itertools的人可以告诉我如何更快地找到争夺,或者有人可以给我一个更好的加扰方法?


低于 VVV 的代码


    import itertools

from itertools import permutations

def genkey(library, toget):

    scrambled = permutations(library)

    iternum = 0

    for fin in scrambled:

        if iternum == toget:

            return(list(fin))

        else:

            iternum += 1

    print('Permutation out of range')

    return

我的主要目标只是找到一种方法,让我可以获得一个看似随机的可复制的争夺,但可以根据我输入的int进行复制。我对任何建议持开放态度。


www说
浏览 110回答 1
1回答

慕哥6287543

听起来您可以使用该模块:randomimport randomrandom.seed(1)    # Choose another number here if you want a different outcomescrambled = random.sample(library, k=len(library))每次使用相同的参数运行它时,您都应该获得相同的值。seed()scrambled
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python