簡體   English   中英

如何比較 python 中的 N 個列表並創建具有唯一元素的新列表

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

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