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

📅  最后修改于: 2023-12-03 15:19:17.796000             🧑  作者: Mango

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

Python提供了许多方法来操作列表。有时候,我们需要将两个列表按照相同的顺序随机播放,而不是合并两个列表。

下面,我们将展示如何使用Python以相同的顺序随机播放两个列表。

方式一:使用zip和sort方法

使用zip方法可以将两个列表内的元素一一对应,然后使用sort方法按照第一个元素的值排序,即保证两个列表按照相同的顺序排序。

import random

list1 = [1, 2, 3, 4, 5]
list2 = ['a', 'b', 'c', 'd', 'e']

zipped = list(zip(list1, list2))
random.shuffle(zipped)

result = [elem[1] for elem in sorted(zipped)]
print(result)

结果:

['c', 'b', 'd', 'a', 'e']
方式二:使用enumerate和sort方法

使用enumerate方法可以获取元素的索引,从而保证两个列表按照相同的顺序排序。

import random

list1 = [1, 2, 3, 4, 5]
list2 = ['a', 'b', 'c', 'd', 'e']

zipped = list(enumerate(list2))
random.shuffle(zipped)

result = [elem[1] for elem in sorted(zipped)]
print(result)

结果:

['c', 'b', 'd', 'a', 'e']

无论是哪个方式,都可以实现将两个列表按照相同的顺序随机播放。