通过保持列表中值的映射顺序来随机化两个列表



我有两个列表

list1=['item1','item2','item3','item4']
list2=['label1','label2','label3','label4']

所以item和它的标签之间有一个映射。我想对它们进行洗牌并生成结果,以便在它们的索引上维护映射。

例如:

洗牌后

list1=['item4','item2','item1','item3']
list2=['label4','label2','label1','label3']

你可以这样做:

import random
x = zip(list1, list2)
random.shuffle(x)
list1, list2 = zip(*x)

然后,例如,你有:

>>> list1
('item4', 'item3', 'item1', 'item2')
>>> list2
('label4', 'label3', 'label1', 'label2')

(这些是元组,但如果需要,它们可以转换回列表)

最新更新