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


Python 列表还可以包含子列表。子列表本身嵌套在一个更大的列表中。在本文中,我们将了解如何在给定的列表中统计唯一的子列表数。

使用 Counter

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}

更新于: 09-9-2020

462 次浏览

开启你的 职业生涯

完成课程以获得认证

开始
广告