簡體   English   中英

如何測試列表中多個字典中的不同值和缺失鍵?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM