Python如何判断嵌套字典中所有Age键的值是否完全一致
Python嵌套字典判断所有Age值是否一致的实现
你可以用两种常见思路实现这个判断逻辑,代码非常简洁:
方法1:利用集合自动去重特性(代码最简短)
集合天生会自动剔除重复元素,只要把所有Age字段的值丢进集合,最后判断集合长度是不是1即可:
people = {1: {'Name': 'John', 'Age': '27', 'Sex': 'Male'}, 2: {'Name': 'Marie', 'Age': '22', 'Sex': 'Female'}} # 核心判断逻辑 is_all_age_equal = len({user_info['Age'] for user_info in people.values()}) == 1 print(is_all_age_equal)
针对你给出的示例字典,两个Age分别是'27'和'22',最终会输出False。如果把第二个字典的Age改成'27',就会输出True。
注意:这个写法会遍历完所有人员条目才出结果,适合数据量不大的场景。
方法2:基准值对比(性能更优,支持空字典兼容)
拿第一个条目的Age当基准值,挨个对比其他条目的Age,只要遇到不一样的就直接返回False,不用遍历剩余数据,大数据量下效率更高,还可以自定义空字典的返回规则:
people = {1: {'Name': 'John', 'Age': '27', 'Sex': 'Male'}, 2: {'Name': 'Marie', 'Age': '22', 'Sex': 'Female'}} age_list = [user_info['Age'] for user_info in people.values()] # 空字典默认返回True,不需要的话可以把else后的返回值改成False is_all_age_equal = all(age == age_list[0] for age in age_list) if age_list else True print(is_all_age_equal)
内容的提问来源于stack exchange,提问作者Trishna
相关产品推荐
相关产品推荐

