gpt4 book ai didi

python - 枚举上的随机选择

转载 作者:IT老高 更新时间:2023-10-28 20:38:17 27 4
gpt4 key购买 nike

我想在 Enum 上使用 random.choice

我试过了:

class Foo(Enum):
a = 0
b = 1
c = 2
bar = random.choice(Foo)

但此代码失败并出现 KeyError。如何选择 Enum 的随机成员?

最佳答案

Enum不是一个序列,所以你不能把它传递给random.choice() ,它试图在 0 和 len(Foo) 之间选择一个索引.像字典一样,索引访问 Enum而是希望传入枚举 names,所以 Foo[<integer>]此处失败,返回 KeyError .

您可以先将其转换为列表:

bar = random.choice(list(Foo))

这是因为 Enum does support iteration .

演示:

>>> from enum import Enum
>>> import random
>>> class Foo(Enum):
... a = 0
... b = 1
... c = 2
...
>>> random.choice(list(Foo))
<Foo.a: 0>

关于python - 枚举上的随机选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24243500/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com