[英]How to unpack keys with list of values to multiple dictionaries to a list without overwriting?
[英]How to test for different values and missing keys in multiple dictionaries within a list?
我有一個字典列表,表示 Maya 中選擇的節點上的所有屬性和值。 我需要找到值的任何差異,以及是否在某些但不是所有節點上找到屬性。
node_dict = [{translateX: 0, translateY: 10, translateZ: 0}, {translateX: 0, translateY: 10, translateZ: 0}, {translateX: 0, translateY: 0, translateZ: 0}]
我需要一種方法來迭代字典列表並只返回不同的鍵。 但是,如果一個值不同,則需要返回所有這些鍵值。
所需的 output diff_dict = {translateY: [10, 10, 0]}
我最大的問題是如何設置 for 循環或其他任何東西來相互測試並報告。 希望有人有想法,撞牆太久了。
您可以更改表示並檢查如下條件:
node_dict = [{'translateX': 0, 'translateY': 10, 'translateZ': 0}, {'translateX': 0, 'translateY': 10, 'translateZ': 0}, {'translateX': 0, 'translateY': 0, 'translateZ': 0}]
result = {}
for x in node_dict:
for key, value in x.items():
if key in result:
result[key].append(value)
else:
result[key] = [value]
result = { k:v for k,v in result.items() if not (v[1:] == v[:-1]) }
print(result)
這將打印{'translateY': [10, 10, 0]}
for 循環遍歷字典並將其重建為一個字典,其中鍵是所有字典上的鍵,值是 arrays 包含同一鍵的所有不同值。 最后一行檢查每個列表是否具有相同的值,以將其保留在最終結果中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.