如何获取固定大小的Python列表随机切片?(最简代码)
你好,我有一个包含100个项目的列表,现在我想随机选出6个项目。有没有什么简单明了的方法可以做到这一点呢?
这是我想到的(不过这样选出来的顺序是固定的)
mylist #100 items
N=100
L=6
start=random.randint(0,N-L);
mylist[start:start+L]
1 个回答
13
你可以在切片之前对列表使用 shuffle()
方法。
如果列表的顺序很重要,先复制一份列表,然后再从复制的列表中切片。
mylist #100 items
shuffleList = mylist
L=6
shuffle(shuffleList)
start=random.randint(0,len(shuffleList)-L);
shuffleList[start:start+L]
就像上面说的,你也可以用 len() 来获取列表的长度,而不是自己定义长度。
正如 THC4K 在下面提到的,如果你想从列表中获取一组随机数字,可以使用 random.sample() 方法,就像下面这样 前提是 你想要随机数字。
mylist #100 items
L=6
random.sample(mylist, L)
这比我第一次尝试的要整洁多了!