如何在python中从php创建str_shuffle

如何在python中从php创建str_shuffle,php,python,arrays,Php,Python,Arrays,注意,我不想使用蟒蛇洗牌,因为它使用Fisher-Yates 洗牌算法我想在php和 当种子(random.seed/srand)相同时使用python 我目前的代码是: def PHP_shuffle(string): array = list(string) shuffled_array = [] arr_length = len(array) if(arr_length < 2): return array while(ar

注意,我不想使用蟒蛇洗牌,因为它使用Fisher-Yates 洗牌算法我想在php和 当种子(random.seed/srand)相同时使用python

我目前的代码是:

def PHP_shuffle(string):
    array = list(string)
    shuffled_array = []
    arr_length = len(array)

    if(arr_length < 2):
        return array

    while(arr_length):
        rand_key = array_keys(array[randint(0, arr_length)]
        shuffled_array[rand_key] = array[rand_key]
        del array[rand_key]
    return shuffled_array
def PHP_shuffle(字符串):
数组=列表(字符串)
无序_数组=[]
arr_length=len(数组)
如果(arr_长度<2):
返回数组
while(arr_长度):
rand\u key=array\u key(数组[randint(0,arr\u长度)]
洗牌数组[随机密钥]=数组[随机密钥]
del数组[随机键]
返回洗牌数组

它不起作用,因为数组键不在python中,我想我需要以某种方式移植它。

抛开
数组键的问题不谈,您是否验证了
randint
在python和php中返回相同的数字,前提是它们具有相同的种子?在构建任何东西之前,可能值得仔细检查这个假设Python对
randint
使用了Mersenne Twister算法。幸运的是,它在PHP上也可用,使用
mt_rand()
而不是rand()。这至少应该为给定的种子提供相同的“随机”值!在Python 3中,获取一个版本字符串,在我运行Python 3.6.0的机器上,
import random;random.seed('31337',version=1);print(random.randint(1,10))
prints 2。