2015-11-17 46 views
1

我有一個列表,並且該列表包含字典。列表中可能有重複的字典。計算字典列表中的唯一項目,python27

我想獲得列表中唯一字典的計數。

我試過使用collections.Counter,但我收到一個錯誤,指出項目(在我的列表中的字典)不可排列。

最終,我想返回一個僅包含唯一字典的列表,並且每個字典將包含一個新的具有-'cnt'的鍵/值對:。

有人可以幫忙嗎?

+0

你在用什麼語言?它可以根據該更改 – MiltoxBeyond

+0

您使用的是哪種語言?例如,python有一個只給出唯一列表成員(list_name.sort())的方法,但不同的語言有不同的內置方法/函數。 – Vadim

+0

道歉...使用python27 – DonnRK

回答

0
new_list = [] 
counts = [] 

for dict_ in your_list: 
    try: 
     i = new_list.index(dict_) 
    except ValueError: 
     counts.append(1) 
     new_list.append(dict_) 
    else: 
     counts[i] += 1 

assert len(counts) == len(new_list) 
for dict_, count in zip(new_list, counts): 
    dict_['cnt'] = count 

del counts 
+0

感謝您的快速響應。這工作完美。這是我第一次使用'斷言' - 謝謝你介紹我。使用assert進行內聯調試和檢查假設證明是正確的看起來完全合乎邏輯。 – DonnRK