有没有更好的方法来随机打乱两个相关列表而不破坏它们在另一个列表中的对应关系?我在其中找到了相关的问题numpy.array
,c#
但并不完全相同。
作为第一次尝试,一个简单的zip
技巧就可以了:
import random
a = [[1, 2], [3, 4], [5, 6], [7, 8], [9, 10]]
b = [2, 4, 6, 8, 10]
c = zip(a, b)
random.shuffle(c)
a = [e[0] for e in c]
b = [e[1] for e in c]
print a
print b
它将得到输出:
[[1, 2], [7, 8], [3, 4], [5, 6], [9, 10]]
[2, 8, 4, 6, 10]
就是觉得有点别扭。它还需要一个额外的列表。