从集合弃用中获取随机数

Get random number from set deprecation

我正在尝试从一组唯一用户中随机获取 n 个用户。

这是我目前的情况

users = set()

random_users = random.sample((users), num_of_user)

这很好用,但它给了我一个已弃用的警告。我应该改用什么? random.choice 不适用于集合

更新

我试图在 post 上获得反应并希望它们是独一无二的,这就是我使用 set 的原因。坚持使用列表会更好吗?

users = set()
    for reaction in msg.reactions:
        async for user in reaction.users():
            users.add(user)

使用 * 运算符将您的集合转换为列表 unpack your dict:

random_users = random.choices([*users],k=num_of_user)

您也可以创建一个列表,稍后让元素唯一。为此,common way 是将您的列表转换为集合,然后再次返回列表。

FWIW,random.sample() in Python 3.9.2 在通过 dict:

时表示
TypeError: Population must be a sequence.  For dicts or sets, use sorted(d).

而且这个解决方案似乎对 setdict 输入都有效。