Python 统计列表列表中字符串的出现次数

Python 统计列表列表中字符串的出现次数,python,dictionary,nested-lists,Python,Dictionary,Nested Lists,我想计算字符串在另一个列表中的列表中出现的次数,并将其存储在字典列表中,其中每个字典都有一个列表的计数。 前, list=[['Sam'、'John'、'Alex'、'Sam'、'Alex']、['Max'、'Sam'、'Max']…] 我希望我的字典列表如下: count_list = [{'Sam':2,'Alex':2,'John':1}, {'Max':2, 'Sam':1}..] 我遍历每个列表,计算每个字符串出现的次数,并将每个结果添加到dict中。但每次结果都不同,而不是正确

我想计算字符串在另一个列表中的列表中出现的次数,并将其存储在字典列表中,其中每个字典都有一个列表的计数。 前,

list=[['Sam'、'John'、'Alex'、'Sam'、'Alex']、['Max'、'Sam'、'Max']…]
我希望我的字典列表如下:

count_list = [{'Sam':2,'Alex':2,'John':1}, {'Max':2, 'Sam':1}..] 
我遍历每个列表,计算每个字符串出现的次数,并将每个结果添加到dict中。但每次结果都不同,而不是正确的值

count\u list=[]
对于列表中的l:
d={}
对于l中的str:
如果str不在d中:
d[str]=l.计数(str)
计数列表。追加(d)
任何帮助都会很有用。谢谢。

在这里使用会更方便:

您也可以使用列表理解,而不是使用更容易理解的if:

>>> [Counter(l) for l in lst]
[Counter({'Sam': 2, 'Alex': 2, 'John': 1}), Counter({'Max': 2, 'Sam': 1})]
注意:
计数器
是的子类,因此您可以将其视为普通词典

如果您愿意,您也可以随时投到:

>>> [dict(Counter(l)) for l in lst]
[{'Sam': 2, 'John': 1, 'Alex': 2}, {'Max': 2, 'Sam': 1}]
您也不应该使用
list
作为变量名,因为它隐藏了内置函数

在这里更容易使用:

您也可以使用列表理解,而不是使用更容易理解的if:

>>> [Counter(l) for l in lst]
[Counter({'Sam': 2, 'Alex': 2, 'John': 1}), Counter({'Max': 2, 'Sam': 1})]
注意:
计数器
是的子类,因此您可以将其视为普通词典

如果您愿意,您也可以随时投到:

>>> [dict(Counter(l)) for l in lst]
[{'Sam': 2, 'John': 1, 'Alex': 2}, {'Max': 2, 'Sam': 1}]

您也不应该使用
list
作为变量名,因为它隐藏了内置函数

目前,您正在执行以下操作:

count_list = []
for l in list :
    d = {}
    for str in l:
        if str not in d:
            d[str] = l.count(str)
            count_list.append(d)
请注意,您正在为子列表中的每个字符串追加字典,而不是为每个子列表追加一个字典

采取以下措施可以解决这个问题:

count_list = []
for l in list :
    d = {}
    for str in l:
        if str not in d:
            d[str] = l.count(str)
    count_list.append(d)

目前,您正在执行以下操作:

count_list = []
for l in list :
    d = {}
    for str in l:
        if str not in d:
            d[str] = l.count(str)
            count_list.append(d)
请注意,您正在为子列表中的每个字符串追加字典,而不是为每个子列表追加一个字典

采取以下措施可以解决这个问题:

count_list = []
for l in list :
    d = {}
    for str in l:
        if str not in d:
            d[str] = l.count(str)
    count_list.append(d)

现在明白了。谢谢现在明白了。谢谢