中级
实现缓存预热策略
未完成
中级参考
代码结构已给出,请填写 ____ 处
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
👑
升级 VIP
解锁全部题目,畅通无阻地学习
- ✓ 解锁全部训练包所有题目
- ✓ 查看完整参考代码和提示
- ✓ 浏览器内直接运行 Python 代码
- ✓ 自动批改 + 进度追踪
30天
¥18
1年
¥99
2年
¥158
3年
¥199