我有一个名为matrix
的列表,其中包含一些行。每个row
包含一些字典,每个字典可以包含在多行中。列表中的唯一字典?
我想要生成一个名为dictionaries
的列表,其中包含矩阵中的所有字典,但没有重复。我已经有了一个解决方案,但我想用理解力。
row1 = [{'NODE':1}, {'NODE':2}, {'NODE':3}]
row2 = [{'NODE':3}, {'NODE':4}, {'NODE':5}]
row3 = [{'NODE':4}, {'NODE':6}, {'NODE':7}]
matrix = [row1, row2, row3]
dictionaries = []
for row in matrix:
for dictionary in row:
items.append(dictionary) if dictionary not in dictionaries else None
print dictionaries
[{'NODE':1}, {'NODE':2}, {'NODE':3}, {'NODE':4}, {'NODE':5}, {'NODE':6}, {'NODE':7}]
我想类似下面的,但它不工作,因为我不能要求检查,而我创造它的列表:
dictionaries = [dictionary for row in matrix for dictionary in row if dictionary not in dictionaries]
词典键和值是原始不变像字符串和整数的对象。
是否为了此事? –
不,没关系 – piezzoritro
所以你的物品是*可变的*,因此不能被散列。可变性*扩展到嵌套值*吗?例如。 '{'NODE':{'set','with','elements'}}'?或者所有的键和值都是不可变的? –