我正试图找到一种更有效的方法,用于从大型库中选择特定的加扰序列

问题描述 投票:0回答:1

我在一个项目中使用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进行复制。我愿意接受任何建议。

python permutation itertools
1个回答
1
投票

听起来您可以使用random模块:

import random

random.seed(1)    # Choose another number here if you want a different outcome
scrambled = random.sample(library, k=len(library))

每次与seed()使用相同的参数运行时,scrambled的值应相同。

© www.soinside.com 2019 - 2024. All rights reserved.