是否有一个命令可以随机抽取列表中的项目并将其删除? 假设命令名为cmd,我想要类似的东西吗?
l = [1,2,4,6]
r = cmd(l)
r = 4
l = [1,2,6]
答案 0 :(得分:2)
使用random.randint
获取随机索引,并使用pop
从列表中获取具有该索引的元素
>>> import random
>>> l = [1,2,4,6]
>>> idx = random.randint(0, len(l)-1)
>>> r = l.pop(idx)
>>> r
4
>>> l
[1, 2, 6]
答案 1 :(得分:0)
您可以尝试以下操作:l.pop(random.randint(0, len(l)))
p.s。抱歉,忘记了随机
答案 2 :(得分:0)
依次使用random.shuffle
和pop
从列表中随机播放:
import random
lst = [1, 2, 4, 6]
random.shuffle(lst)
r = lst.pop()
print(r) # 4
print(lst) # [1, 2, 6]
答案 3 :(得分:0)
使用模块choice
中的功能random
,然后使用remove
从列表中删除项目。
>>> from random import choice as get
>>> l = [1,2,3,4,6]
>>> r = get(l)
>>> r
3
>>> l.remove(r)
>>> l
[1, 2, 4, 6]
简而言之:
from random import choice as get
l = [1,2,3,4,6]
r = get(l)
l.remove(r)
答案 4 :(得分:0)
我想到的最简单的方法是使用shuffle()
随机化列表中元素的位置,然后在需要时使用pop()
。
>>> from random import shuffle
>>> shuffle(l)
>>> l.pop()
#driver值:
IN : l = [1,2,4,6]
OUT : 4
来自PyDocs:
random.shuffle(x [,random])
Shuffle the sequence x in place.