LRUDict
类源码
ldict = LRUDict(maxsize: int = 10)
ldict: LRUDict[str, T] = LRUDict(**kwargs: T, maxsize: int = 10)
ldict: LRUDict[K, T] = LRUDict(data={k1: ..., k2: ...}, maxsize: int = 10)
ldict: Mapping[str, T] = LRUDict(
data={"key1": ..., "key2": ...}, **kwargs: T, maxsize: int = 10
)
ldict: Mapping[K, T] = LRUDict(
data=((key, val) for (key, val) in ...), maxsize: int = 10
)
ldict: Mapping[str, T] = LRUDict(
data=((key, val) for (key, val) in ...), **kwargs, maxsize: int = 10
)
由最久未使用(least recently used, LRU)缓存驱动的字典,其中K, T
均是泛型。
容量限定,当缓存字典填满时,检查最久未查询过的关键字,并清出该数据。
LRUDict
同时是保证线程安全的。
该LRUDict
在默认情况下,不会隐式地释放缓冲区内的数据。要确保数据从内存中删除,需要显示地调用pop()
方法,并针对返回值进行删除。
参数
参数 | 类型 | 必选 | |
---|---|---|---|
data | {K: T} | [(K, T)] | 用来创建字典的数据。 | |
**kwargs | T | 在关键字参数中指定的,用来创建字典的数据。 | |
maxsize | int | 缓存最多可容纳的数据条目数(即缓存容量)。 |
提示
注意,该字典的初始化用法与Python标准库中dict()
完全一致。
方法
clear
ldict.clear()
移除字典中的所有元素。
copy
new_ldict: LRUDict[K, T] = ldict.copy()
返回原字典的浅拷贝。
fromkeys
new_ldict: LRUDict[str, T] = LRUDict.fromkeys(
iterable: Iterable[str], value: T | None = None, maxsize: int = 10
)
使用来自可遍历 对象的关键字iterable
创建一个新LRU缓存字典,并将键值设为value
。
输入
参数 | 类型 | 必选 | |
---|---|---|---|
iterable | Iterable[str] | 可遍历对象,用来为新创建的字典提供关键字。 | |
value | T | 共同值,新创建字典的所有关键字都赋以该值。 | |
maxsize | int | 缓存的容量。 |
输出
参数 | 类型 | |
---|---|---|
new_ldict | LRUDict[str, T] | 新初始化的LRU缓存字典,其中,关键字提供自iterable ,且所有值均设置为value 。 |
get
value: T | None = ldict.get(key: K)
value: T | S = ldict.get(key: K, default: S)
如果key
存在于字典中则返回key
的值,否则返回default
。 如果default
未给出则默认为None
,因而此方法绝不会抛出KeyError
。
输入
参数 | 类型 | 必选 | |
---|---|---|---|
key | K | 用来查询的关键字。 | |
default | S | 当关键字未找到时,返回的默认值。 |
输出
参数 | 类型 | |
---|---|---|
value | T | S | 查询到的值,或由default=... 指定的值。 |
setdefault
value: T | None = ldict.setdefault(key: K)
value: T | S = ldict.setdefault(key: K, default: S)
如果字典存在关键字key
,返回它的值。如果不存在,插入值为default
的关键字key
,并返回default
。default
默认为None
。
输入
参数 | 类型 | 必选 | |
---|---|---|---|
key | K | 用来查询的关键字。 | |
default | S | 当关键字未找到时,返回的默认值。 |
输出
参数 | 类型 | |
---|---|---|
value | T | S | 查询到的值,或由default=... 指定的值。 |
pop
value: T = ldict.pop(key: K)
value: T | S = ldict.pop(key: K, default: S)
如果key
存在于字典中则将其移除并返回其值,否则返回default
。 如果default
未给出且key
不存在于字典中,则会抛出KeyError
。
输入
参数 | 类型 | 必选 | |
---|---|---|---|
key | K | 用来查询的关键字。 | |
default | S | 当关键字未找到时,返回的默认值。 |
输出
参数 | 类型 | |
---|---|---|
value | T | S | 查询到的值,或由default=... 指定的值。 |
popitem
key, value = ldict.popitem()