如何查找内部列表中最后一个值在python嵌套列表中重复多少次?

时间:2019-03-11 14:04:41

标签: python-3.x list numpy duplicates

我有一个列表:

a = [[0, 2, 5, 12], [1, 2, 3, 4, 8, 9], [2, 4, 12], [3, 8, 9], [4, 5, 7]]

我想得到2是因为a[0][-1] == a[2][-1], a[1][-1] == a[3][-1]

最后两个值重复。

我尝试使用sum(1 for sublist in a if sublist[-1] == sublist[-1]) 它失败了,我为此陷入困境。

3 个答案:

答案 0 :(得分:2)

您可以使用collections.Counter计算最后一项的出现次数:

from collections import Counter
last = Counter([i[-1] for i in a])
# Counter({7: 1, 9: 2, 12: 2})

然后计算其中有多少个大于1

sum(1 for k,v in last.items() if v>1)
# 2

答案 1 :(得分:0)

从列表中创建一组最后的值,然后计算长度:

len(a) - len({x[-1] for x in a})
# 2

答案 2 :(得分:0)

由于重复项的位置无关紧要,所以问题很简单,就是列表长度减去唯一值。所以:

last_elements=[i[-1] for i in a]
num_duplicates=len(last_elements)-len(set(last_elements)