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
我需要通过其属性之一 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