📜  Python|以相同的顺序随机播放两个列表

📅  最后修改于: 2022-05-13 01:55:26.362000             🧑  作者: Mango

Python|以相同的顺序随机播放两个列表

有时,在使用Python列表时,我们可能会遇到需要在列表中执行 shuffle 操作的问题。这个任务很简单, Python中有一些简单的功能可以执行此任务。但有时,我们需要对两个列表进行洗牌,以使它们的洗牌顺序一致。让我们讨论一种可以执行此任务的方式。
方法:使用 zip() + shuffle() + *运算符
在此方法中,此任务分三个步骤执行。首先,使用 zip() 将列表压缩在一起。下一步是使用内置的 shuffle() 执行随机播放,最后一步是使用 *运算符将列表解压缩到单独的列表中。

Python3
# Python3 code to demonstrate working of
# Shuffle two lists with same order
# Using zip() + * operator + shuffle()
import random
 
# initializing lists
test_list1 = [6, 4, 8, 9, 10]
test_list2 = [1, 2, 3, 4, 5]
 
# printing lists
print(f"The original list 1 : {test_list1}")
print(f"The original list 2 : {test_list2}")
 
# Shuffle two lists with same order
# Using zip() + * operator + shuffle()
temp = list(zip(test_list1, test_list2))
random.shuffle(temp)
res1, res2 = zip(*temp)
# res1 and res2 come out as tuples, and so must be converted to lists.
res1, res2 = list(res1), list(res2)
 
# Printing result
print(f"List 1 after shuffle :  {res1}")
print(f"List 2 after shuffle :  {res2}")


输出 :
The original list 1 : [6, 4, 8, 9, 10]
The original list 2 : [1, 2, 3, 4, 5]
List 1 after shuffle : [6, 10, 4, 8, 9]
List 2 after shuffle : [1, 5, 2, 3, 4]