Python示例并从列表中删除项目

时间:2018-08-19 10:30:58

标签: python python-3.x list random

是否有一个命令可以随机抽取列表中的项目并将其删除? 假设命令名为cmd,我想要类似的东西吗?

l = [1,2,4,6]
r = cmd(l)
r = 4
l = [1,2,6]

5 个答案:

答案 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.shufflepop从列表中随机播放:

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.