簡體   English   中英

如何比較列表列表的元素(Python)

[英]How to compare elements of a list of lists (Python)

identical = 0
while x < len(BigList):
    while y < len(BigList):
        if BigList[x][0] == BigList[y][0] and y != x:
            identical += 1
        y += 1
    x += 1

如何正確查看大列表中每個列表的0th元素是否等於大列表中另一個列表的另一個第0個元素?

即,我需要[[1,2],[2,3],[1,4],[2,5]]使其等於identical=2因為2個列表的第0個元素等於另一個列表的0th元素

tia

identical = len(BigList) - len(set(item[0] for item in BigList))

重復數= BigList中的項目數減去唯一第零索引項目的數

首先列出第0個元素...然后計算出現次數(如果您是2.7+,則可以使用collections.Counter在第零個列表上

zeros = [mylist[0] for mylist in biglist]
my_dict = dict([(c,zeros.count(c)) for c in zeros])
dup_elems = filter(lambda key:my_dict[key]>1, my_dict.keys())
print len(dup_elems)
  1. 計算在索引0處共享該元素的子列表的數量。
  2. 計算相同子列表的數量。
  3. 兩者之間的區別在於您追求的是什么。

碼:

firstElems = zip(*L)[0]
firstSames = sum(v for v in collections.Counter(firstElems).values if v != 1)
equals = sum(v for v in collections.counter(tuple(l) for l in L).values if v!=1)
answer = firstSames - equals

希望這可以幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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