python 从列表中随机取五个数,不能重复,一直取到所有情况都取完
时间: 2023-12-19 12:06:14 浏览: 200
python取均匀不重复的随机数方式
你可以使用 Python 的 itertools 模块中的 permutations 函数来生成所有不同的组合,然后通过 random.sample 函数从中随机取五个数。具体代码如下:
```python
import itertools
import random
# 定义一个列表
lst = [1, 2, 3, 4, 5, 6, 7, 8]
# 生成所有不同的组合
combinations = list(itertools.permutations(lst, 5))
# 不停地取出随机的五个数,直到所有情况都取完
while combinations:
# 随机取出五个不同的元素
sample = random.sample(combinations, 5)
# 输出结果
print(sample)
# 从 combinations 中删除已经取出的元素
for s in sample:
combinations.remove(s)
```
这个代码会不停地取出随机的五个数,直到所有情况都被取完。注意,如果列表中元素的数量不够多,可能会出现无限循环的情况。因此,你还需要添加一些控制循环次数的逻辑。
阅读全文