2014-01-24 55 views
0

我有一个数字列表,我想用一个键随机播放它并重做它。我将它用作小型加密算法,因此我需要重新洗牌或从填充列表中获取原始列表。在python中随机播放和重新排序列表?

original = [10, 20, 30, 25, 45, 68, 25] 
shuffled = shuffle(original, key=10) 
print shuffled 
# >>> [25, 30, 25, 10, 20, 45, 68] 
print re_shuffle(shuffled, key=10) 
# >>> [10, 20, 30, 25, 45, 68, 25] 

这是我想要的想法。有没有一个库或算法?

+1

'key'与您的shuffle算法有什么关系? – Abhijit

+0

如果没有密钥,那么如何re_shuffle数组?该算法必须有一些参数,以便它可以回溯到原始列表。 –

+1

你可以在python中种子你的shuffeling,请参阅:http://stackoverflow.com/questions/4557444/python-random-sequence-with-seed - 只是建议自己发明的加密算法几乎总是不好。适合尝试和周围玩耍,但不应该依赖这些,除非你是加密专家 – kratenko

回答

0
from random import shuffle 

x = [[i] for i in range(10)] 
shuffle(x) 

print x 
+0

为“钥匙”部分,是否可以保存到文件?如果是这样,那么这很容易 – Nabin