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)
现在明白了。谢谢现在明白了。谢谢