← 返回题库
初级

实现排序参数解析

未完成
初级参考 完整示例代码供参考,建议自己理解后重新输入
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
Python 代码 🔒 登录后使用
🔒

登录后即可练习

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