初级
实现排序参数解析
未完成
初级参考
完整示例代码供参考,建议自己理解后重新输入
def solve():
from pyodide.http import open_url
from io import StringIO
products_csv = open_url("https://data.zuihe.com/dbd/ms-shop/state_00/products.csv").read()
import pandas as pd
from io import StringIO
products = pd.read_csv(StringIO(products_csv))
def parse_sort(sort_str, data):
fields, orders = [], []
for part in sort_str.split(','):
part = part.strip()
if part.startswith('-'):
fields.append(part[1:]); orders.append(False)
else:
fields.append(part); orders.append(True)
valid = [(f,o) for f,o in zip(fields,orders) if f in data.columns]
if not valid: return data
fs, os_ = zip(*valid)
return data.sort_values(list(fs), ascending=list(os_))
for sort in ['-price', 'category,-price', 'stock']:
result = parse_sort(sort, products)[['name','price','stock','category']].head(3)
print(f"sort={sort}:")
print(result.to_string(index=False))
示例
输入
solve()
期望输出
sort=-price:
name price stock category
人体工学椅 1299.0 30 furniture
机械键盘 499.0 80 electronics
背包 349.0 70 bags
sort=category,-price:
name price stock category
背包 349.0 70 bags
机械键盘 499.0 80 electronics
无线蓝牙耳机 299.0 150 electronics
sort=stock:
name price stock category
人体工学椅 1299.0 30 furniture
护眼台灯 239.0 60 home
背包 349.0 70 bags
👑
升级 VIP
解锁全部题目,畅通无阻地学习
- ✓ 解锁全部训练包所有题目
- ✓ 查看完整参考代码和提示
- ✓ 浏览器内直接运行 Python 代码
- ✓ 自动批改 + 进度追踪
30天
¥18
1年
¥99
2年
¥158
3年
¥199