计算Python列表中的唯一子列表

Python列表也可以包含子列表。子列表本身就是嵌套在更大列表中的列表。在本文中,我们将看到如何计算给定列表中唯一子列表的数量。

使用计数器

Counter是Dictionary的子类,用于跟踪元素及其数量。它也被视为无序集合,其中元素存储为Dict键,其计数为dict值。因此,在下面的示例中,我们直接获取一个包含子列表的列表。

示例

from collections import Counter
# Given List
Alist = [['Mon'],['Tue','Wed'],['Tue','Wed']]
print(Counter(str(elem) for elem in Alist))

输出结果

运行上面的代码给我们以下结果-

Counter({"['Tue', 'Wed']": 2, "['Mon']": 1})

append()

我们还可以遍历列表中的元素并将其设置为元组,然后为同一元素的每次出现添加1。最后,打印新列表,将子列表显示为键,并将其计数显示为值。

示例

# Given List
Alist = [['Mon'],['Tue','Wed'],['Tue','Wed'], ['Tue','Wed']]

# Initialize list
NewList = {}

# Use Append through Iteration
for elem in Alist:
   NewList.setdefault(tuple(elem), list()).append(1)
for k, v in NewList.items():
   NewList[k] = sum(v)

# Print Result
print(NewList)

输出结果

运行上面的代码给我们以下结果-

{('Mon',): 1, ('Tue', 'Wed'): 3}