在 python 如何计算列表中元素的出现次数
In python how to count occurance of elements in list
我有以下列表;
['html', 'header', 'title', 'body', 'div', 'div', 'div', 'div', 'div', 'ul', 'li', 'li', 'li']
我想打印出现 3 次或更多次的项目。
输出应该是'li'
和'div'
任何人都可以帮我 python 代码来做到这一点。
使用collections
模块。
Counter
方法将添加列表 l
中的所有项目作为键,值是它们的计数。
所以你可以根据你的逻辑根据它们的计数找到键。
代码:
from collections import Counter
l = ['html', 'header', 'title', 'body', 'div', 'div', 'div', 'div', 'div', 'ul', 'li', 'li', 'li']
c = Counter(l)
for key, count in c.items():
print("[{}] - {}".format(key, count))
输出:
[body] - 1
[ul] - 1
[title] - 1
[li] - 3
[header] - 1
[html] - 1
[div] - 5
试试这个:
>>> from collections import Counter
>>> l = ['html', 'header', 'title', 'body', 'div', 'div', 'div', 'div', 'div', 'ul', 'li', 'li', 'li']
>>> [item for item, cnt in Counter(l).items() if cnt > 2]
['li', 'div']
不使用 Counter
,
In [198]: e = ['html', 'header', 'title', 'body', 'div', 'div', 'div', 'div', 'div', 'ul', 'li', 'li', 'li']
In [199]: list(set([v for v in e if e.count(v)>=3]))
Out[199]: ['li', 'div']
(仅适用于短列表,因为它不太有效)。
L = ['html', 'header', 'title', 'body', 'div', 'div', 'div', 'div', 'div', 'ul', 'li', 'li', 'li']
result = []
for i in range(len(L)):
if L.count(L[i]) >= 3 and L[i] not in result:
result.append(L[i])
print result
输出
['div', 'li']
我有以下列表;
['html', 'header', 'title', 'body', 'div', 'div', 'div', 'div', 'div', 'ul', 'li', 'li', 'li']
我想打印出现 3 次或更多次的项目。
输出应该是'li'
和'div'
任何人都可以帮我 python 代码来做到这一点。
使用collections
模块。
Counter
方法将添加列表 l
中的所有项目作为键,值是它们的计数。
所以你可以根据你的逻辑根据它们的计数找到键。
代码:
from collections import Counter
l = ['html', 'header', 'title', 'body', 'div', 'div', 'div', 'div', 'div', 'ul', 'li', 'li', 'li']
c = Counter(l)
for key, count in c.items():
print("[{}] - {}".format(key, count))
输出:
[body] - 1
[ul] - 1
[title] - 1
[li] - 3
[header] - 1
[html] - 1
[div] - 5
试试这个:
>>> from collections import Counter
>>> l = ['html', 'header', 'title', 'body', 'div', 'div', 'div', 'div', 'div', 'ul', 'li', 'li', 'li']
>>> [item for item, cnt in Counter(l).items() if cnt > 2]
['li', 'div']
不使用 Counter
,
In [198]: e = ['html', 'header', 'title', 'body', 'div', 'div', 'div', 'div', 'div', 'ul', 'li', 'li', 'li']
In [199]: list(set([v for v in e if e.count(v)>=3]))
Out[199]: ['li', 'div']
(仅适用于短列表,因为它不太有效)。
L = ['html', 'header', 'title', 'body', 'div', 'div', 'div', 'div', 'div', 'ul', 'li', 'li', 'li']
result = []
for i in range(len(L)):
if L.count(L[i]) >= 3 and L[i] not in result:
result.append(L[i])
print result
输出
['div', 'li']