假设我有这样一个python列表:
l = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
Run Code Online (Sandbox Code Playgroud)
通过使用random.shuffle,
>>> import random
>>> random.shuffle(l)
>>> l
[5, 3, 2, 0, 8, 7, 9, 6, 4, 1]
Run Code Online (Sandbox Code Playgroud)
我有上面的清单.
如何获取随机列表中每个项目的先前索引值列表?
Kev*_*vin 14
你可以使用每个项目与其索引配对enumerate,然后将其改组.
>>> import random
>>> l = [4, 8, 15, 16, 23, 42]
>>> x = list(enumerate(l))
>>> random.shuffle(x)
>>> indices, l = zip(*x)
>>> l
(4, 8, 15, 23, 42, 16)
>>> indices
(0, 1, 2, 4, 5, 3)
Run Code Online (Sandbox Code Playgroud)
这种方法的一个优点是无论是否l包含重复项,它都可以工作.