如何根据输入的星期从Python字典中提取对应键?
问题分析与解决方案
你的代码问题出在字典结构和查找逻辑不匹配:当前字典的键是价格数值,值是对应星期的列表,而你用day in day_price_dict是在检查输入的星期是否是字典的键——显然不可能,因为键是12、14、16这类数字,自然找不到匹配项。
下面提供两种可行的修正方案:
方案1:反转字典结构(推荐)
直接把星期作为键,对应价格作为值,这样可以通过输入的星期快速查找对应价格,效率更高:
day = input().strip() # 调整字典结构:星期为键,价格为值 day_price_dict = { 'Monday': 12, 'Tuesday': 12, 'Friday': 12, 'Wednesday': 14, 'Thursday': 14, 'Saturday': 16, 'Sunday': 16 } # 用get方法避免输入无效星期时报错 print(day_price_dict.get(day, "输入的星期无效"))
方案2:遍历原字典查找
如果不想修改原字典的结构,可以遍历字典的键值对,检查输入的星期是否在对应的值列表中:
day = input().strip() day_price_dict = {12: ['Monday', 'Tuesday', 'Friday'], 14: ['Wednesday', 'Thursday'], 16: ['Saturday', 'Sunday']} # 遍历字典的键值对 for price, days in day_price_dict.items(): if day in days: print(price) break else: # 循环正常结束(未找到匹配项)时执行 print("输入的星期无效")
内容的提问来源于stack exchange,提问作者Vasil Vasilev
相关产品推荐
相关产品推荐

