Python3 中最高效的按键添加和删除数据结构

Most efficient data structure for add and remove by key in Python3

我需要通过其属性之一 user_id 保存一个 dataclasses 对象,并经常查询 user_id 并删除如果密钥存在。 UserInfo class 定义如下:

@dataclass(frozen=True)
class UserInfo:
    user_id: int
    book: str
    bookshelf_color: str
    money: int
    size: int

# operation for this data structure D
if user_id in D:
   del D[user_id]

到目前为止我只能想到使用内置的dict()(或者输入Python3的Dict)来存储它:user_id作为键,UserInfo 对象作为值。所以删除使用del关键字(或者pop?不知道哪个是better/Pythonic)。但是我想知道是否有更有效的解决方案?

当你需要一个集合并通过键查询它时,没有比使用字典更好的方法了

关于 del 与 pop,既然你说密钥不会总是存在,我会选择 pop,但你总是可以使用 del 并将其包装在 try/except