我正在尝试从一组唯一用户中获取随机的 n 个用户。
这是我到目前为止所拥有的
users = set()
random_users = random.sample((users), num_of_user)
这很有效,但它给了我一个已弃用的警告。我应该用什么来代替? random.choice 不适用于集合
UPDATE
我试图获得对帖子的反应,并希望它们是独一无二的,这就是为什么我使用set
。为此坚持列出一个清单会更好吗?
users = set()
for reaction in msg.reactions:
async for user in reaction.users():
users.add(user)
将您的集合转换为列表。
-
通过使用list
功能:
random_users = random.choices(list(users),k=num_of_user)
-
通过使用*
运算符至解压你的集合或字典 https://docs.python.org/3/tutorial/controlflow.html#tut-unpacking-arguments:
random_users = random.choices([*users],k=num_of_user)
解决方案 1. 比 2. 长 3 个字符,但解决方案 1. 对我来说更字面意思。
不能保证通过不同的执行、Python 版本和平台,您将获得相同的列表顺序结果,因此,尽管仔细地进行了随机数生成器初始化,您最终可能会得到不同的随机结果。要解决此问题,请订购您的列表。
您还可以将用户存储在列表中,稍后使用 set 使元素唯一,然后再次转换为列表。为此,一个一般的方法 https://stackoverflow.com/questions/7961363/removing-duplicates-in-lists是将列表转换为集合,然后再次转换回列表。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)