You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python实现不区分大小写列表搜索及动态更新列表方案咨询

解决Python食物分类工具的两个问题

问题说明

原始代码存在两个核心问题:

  • 搜索时严格区分大小写,输入mango无法匹配列表中的Mango
  • 食物列表硬编码,添加新食物项必须手动修改代码,无法动态配置

修改后的代码

# 用字典存储分类信息,便于扩展
food_categories = {
    "Healthy": ["Apple", "Guava", "Mango", "watermelon"],
    "Unhealthy": ["Candy", "Nestle", "dairy milk"],
    "Don't eat daily": ["Pizza", "pani puri", "juice"]
}

def add_food_item(category, item):
    """添加新食物项到指定分类"""
    lower_item = item.lower()
    # 检查分类是否存在
    if category in food_categories:
        # 避免重复添加相同食物(不区分大小写)
        if not any(food.lower() == lower_item for food in food_categories[category]):
            food_categories[category].append(item)
            print(f"已添加{item}到{category}分类")
        else:
            print(f"{item}已在{category}分类中")
    else:
        print(f"不存在{category}分类,可扩展创建新分类功能")

def classify_food(item):
    """不区分大小写搜索并分类食物"""
    lower_item = item.lower()
    for category, items in food_categories.items():
        # 统一转小写后匹配
        if lower_item in [food.lower() for food in items]:
            print(category)
            return
    print("未找到对应分类")

# 示例:动态添加新食物项
add_food_item("Healthy", "Banana")
add_food_item("Unhealthy", "Chocolate Bar")

# 交互逻辑
user_input = input('Enter the food item: ')
classify_food(user_input)

代码解释

  1. 不区分大小写搜索:

    • 将用户输入和列表内的食物项统一转为小写(lower())后匹配,彻底解决大小写敏感问题
    • 无论输入Mango、mango还是MANGO,都能正确识别分类
  2. 可配置列表:

    • 用字典food_categories替代独立列表,分类和食物的对应关系更清晰,便于管理
    • 新增add_food_item函数,支持动态添加食物到指定分类,无需手动修改原始代码
    • 内置重复检查逻辑,避免同一食物被多次添加

扩展建议

如果需要支持创建新分类,可修改add_food_item函数,实现分类自动创建:

def add_food_item(category, item):
    lower_item = item.lower()
    # 分类不存在则自动创建
    if category not in food_categories:
        food_categories[category] = []
        print(f"已创建新分类{category}")
    # 检查重复
    if not any(food.lower() == lower_item for food in food_categories[category]):
        food_categories[category].append(item)
        print(f"已添加{item}到{category}分类")
    else:
        print(f"{item}已在{category}分类中")

内容的提问来源于stack exchange,提问作者Pranav167

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 20:45:34