【发布时间】:2017-05-09 11:20:42
【问题描述】:
我有一个嵌套列表,其中包含多次出现的各种名称。我需要编写一个函数来计算每个名称出现的次数,然后将其附加到一个列表中,该列表显示名称,然后是它的计数。例如,输入可能如下所示:
L = [['Jimmy', 'Henry'], ['Henry', 'Bob'], ['Lucas', 'Jimmy']]
我希望输出是这样的列表:
newList = [['Jimmy', 2], ['Henry', 2], ['Bob', 1], ['Lucas', 1]]
我写了以下函数:
def nameCount(target):
count = 0
name = target
for subList in L:
if name in subList:
count += 1
print(count)
但是,这只会产生我必须指定为目标的一个名称的数量。我希望它遍历每个名称并计算它存在的次数,然后将其附加到新列表中。
【问题讨论】:
-
collections.Counter(itertools.chain(*L))似乎是最简单的方法。