在3.6之前我只会使用set.pop()
。现在,集合是有序的,并且pop总是从头开始删除。
您认为最蟒蛇的方式是什么?
我不确定我对set.remove(random.sample(set, 1)[0])
的看法。
答案 0 :(得分:7)
set .pop()
方法不接受参数,它会删除任意(但不是随机)的设置值。 https://docs.python.org/3.6/library/stdtypes.html#set.pop
使用一个元素random.sample(s, 1)
获取一组样本并使用set.remove()
。
>>> s = set([1,2,3,4,5])
>>> s.remove(random.sample(s, 1)[0])
>>> print(s)
{1, 3, 4, 5}
random.choice
不起作用,因为集合未编入索引。
>>> random.choice(s)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python3.5/random.py", line 256, in choice
return seq[i]