← 返回题库
中级

实现缓存预热策略

未完成
中级参考 代码结构已给出,请填写 ____ 处
def solve():
    from pyodide.http import open_url
    from io import StringIO
    products_csv = open_url(____).read()
    cache_log_csv = open_url(____).read()
    import pandas as pd
    from io import StringIO
    products = pd.read_csv(StringIO(____))
    cache_log = pd.read_csv(StringIO(____))
    cache = {}
    def warmup_by_popularity(____):
        access_freq = log[log['____']=='____']['____'].value_counts()
        top_keys = access_freq.head(____).index.tolist()
        loaded = ____
        for key in top_keys:
            if key.startswith(____):
                pid = int(key.split(____)[____])
                row = products_df[products_df['____']==pid]
                if not row.empty:
                    cache[key] = row.iloc[____].to_dict()
                    loaded += ____
        return loaded, top_keys
    def warmup_by_category(____):
        if categories is None: categories = products_df['____'].unique()[:____].tolist()
        loaded = ____
        for _, row in products_df[products_df['____'].isin(____)].iterrows():
            cache[f"____"] = row.to_dict(); loaded+=____
        return loaded
    n1, keys = warmup_by_popularity(____)
    print(____)
    n2 = warmup_by_category(____)
    print(____)
    print(____)

示例

输入
solve()
期望输出
按访问频率预热: 5个, keys=['product:7', 'product:11', 'product:2']
按分类预热: 6个
缓存总条目: 7
Python 代码 🔒 登录后使用
🔒

登录后即可练习

注册免费账号,在浏览器中直接运行 Python 代码