Python无需if语句实现首字母输入匹配颜色列表对应元素的方法
Python实现方案
不用if语句的最优实现方式是采用键值映射逻辑,结合f-string完成输出,两种适配不同场景的实现如下:
方案1:推荐(无需提前定义单字母变量)
直接从给定的colors列表自动生成首字母到颜色名的映射字典,代码简洁易维护:
colors = ['Red', 'Green', 'Blue', 'Yellow', 'Purple', 'Orange', 'White'] # 自动生成首字母映射,小写key适配大小写输入 color_map = {color[0].lower(): color for color in colors} # 获取用户输入,做格式统一处理 input_char = input("请输入颜色首字母:").strip().lower() # f-string输出结果,自带兜底提示 print(f"对应颜色名称:{color_map.get(input_char, '未匹配到对应颜色')}")
方案2:适配已定义单字母变量的场景
如果你已经提前定义了r = 'Red'、b = 'Blue'这类全局变量,可以直接用内置的globals()方法完成映射,无需额外建字典:
colors = ['Red', 'Green', 'Blue', 'Yellow', 'Purple', 'Orange', 'White'] # 已提前定义的变量 r = 'Red' g = 'Green' b = 'Blue' y = 'Yellow' p = 'Purple' o = 'Orange' w = 'White' input_char = input("请输入颜色首字母:").strip().lower() print(f"对应颜色名称:{globals().get(input_char, '未匹配到对应颜色')}")
两种方案全程没有用到if判断,均优先采用f-string完成输出,第一种方案更规范,不会污染全局变量空间,更推荐使用。
内容的提问来源于stack exchange,提问作者Faraj Shaikh
相关产品推荐
相关产品推荐

