如何将Python字典MBTI测试代码中的多段if语句改为for循环?
用For循环重构MBTI风格测试的判断逻辑
重构后的代码
myDict = {"R":0,"T":2,"C":3,"F":5,"J":2,"M":1,"A":4,"N":6} myString = "" # 定义所有需要对比的键对 key_pairs = [("R", "T"), ("C", "F"), ("J", "M"), ("A", "N")] for key1, key2 in key_pairs: myString += key1 if myDict[key1] >= myDict[key2] else key2 print(myString)
实现思路
- 整理对比组:把需要两两对比的键按顺序封装成元组列表
key_pairs,每一组对应原代码里的一个if-else逻辑。 - 循环遍历处理:用
for循环遍历每个键对,复用原有的比较规则,用三元表达式简化字符串拼接(也可以保留原有的if-else写法,逻辑完全一致)。 - 优化优势:去掉了重复的代码块,后续如果要添加或修改测试维度,只需要调整
key_pairs列表即可,代码维护性更强。
内容的提问来源于stack exchange,提问作者amugeona2355
相关产品推荐
相关产品推荐

