[英]Getting non equals values from a nested dictionary
我有一個這樣的嵌套字典
my_dict = {
'ae15': {'selector1fpc0': {'12': ' 3b1874ee5465656256079d02a301acf5'},
'selector1fpc1': {'12': ' 3b1874ee5465656256079d02a301acf5'},
'selector1fpc10': {'12': ' 3b1874ee5465656256079d02a301acf5'},
'selector1fpc4': {'12': ' 3b1874ee5465656256079d02a301acf5'},
'selector1fpc5': {'12': ' de80451ee5a9e5d69f243a42f1e72d1f'},
'selector1fpc7': {'12': ' 3b1874ee5465656256079d02a301acf5'},
'selector1fpc8': {'12': ' 3b1874ee5465656256079d02a301acf5'},
'selector1fpc9': {'12': ' 3b1874ee5465656256079d02a301acf5'}},
'ae16': {'selector1fpc0': {'7': ' 119a58e92e581d90eba9a57262d297e5'},
'selector1fpc1': {'7': ' 119a58e92e581d90eba9a57262d297e5'},
'selector1fpc10': {'8': ' 119a58e92e581d90eba9a57262d297e5'},
'selector1fpc4': {'7': ' 119a58e92e581d90eba9a57262d297e5'},
'selector1fpc5': {'7': ' 119a58e92e581d90eba9a57262d297e5'},
'selector1fpc7': {'7': ' 119a58e92e581d90eba9a57262d297e5'},
'selector1fpc8': {'7': ' 119a58e92e581d90eba9a57262d297e5'},
'selector1fpc9': {'7': ' 119a58e92e581d90eba9a57262d297e5'}}}
我想檢查字典的所有內部值是否相等
IE
在 ae15 selector1fpc5 中的值與其他值不同,但在 ae16 中所有值都相同
我正在嘗試以下代碼
for k, dic in my_dict.items():
print(dic.values())
iterable = iter(dic.values())
first = next(iterable)
all_equals = all(first == val for val in iterable for k in dic.keys())
print(k,all_equals)
但是在這兩種情況下我都得到了 False,而實際上只有 ae195 具有不同的值。
您需要在不同的地方更深地嵌套一層:
from itertools import chain
for k, dic in my_dict.items():
iterable = chain(*(d.values() for d in dic.values())) # to here ...
first = next(iterable)
all_equals = all(first == val for val in iterable) # ... from here!
print(k, all_equals)
ae15 False
ae16 True
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.