![](/img/trans.png)
[英]compare elements of list to elements of list of lists and conditionally create new lists
[英]How to compare N lists in python and create a new list with unique elements
我將收到具有這種結構的 json
{'compare': [["A","B","C"], ["A","D","C"], ["E","A"]...}
我將比較每個數組,我想創建一個只有唯一項目的新列表,例如
{"unique":["B","D","E"]}
合並所有列表,計算元素,只保留唯一的列表。 以下使用列表列表,而不是字典(不帶來任何價值)。 使用內置包是最快和最 Pythonic 的:
import collections,itertools
lst = [["A","B","C"], ["A","D","C"], ["E","A"]]
# flatten lists and count elements
c = collections.Counter(itertools.chain.from_iterable(lst))
# filter, keep only elements counted once
result = [k for k,v in c.items() if v==1]
>>> result
['B', 'E', 'D']
您還可以使用default dict
from collections import defaultdict
values = {'compare': [["A","B","C"], ["A","D","C"], ["E","A"]]}
counter = defaultdict(int)
for value in values['compare']:
for v in value:
counter[v] += 1
print([k for k, v in counter.items() if v == 1])
['B', 'D', 'E']
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.