python-3.x - 如何计算python中列表所有元素的出现次数?
解决方案
您可以使用以下方法计算特殊元素的出现次数count()
:
grades = ['b', 'b', 'f', 'c', 'b', 'a', 'a', 'd', 'c', 'd', 'a', 'a', 'b']
letters = ['a', 'b', 'c', 'd', 'f']
print(list(map(lambda letter: {letter: grades.count(letter)}, letters)))
输出:
[{'a': 4}, {'b': 4}, {'c': 2}, {'d': 2}, {'f': 1}]
如果您想在不使用letters
. 你可以这样做:
grades = ['b', 'b', 'f', 'c', 'b', 'a', 'a', 'd', 'c', 'd', 'a', 'a', 'b']
print(list(map(lambda letter: {letter: grades.count(letter)}, set(grades))))
输出:
[{'f': 1}, {'b': 4}, {'c': 2}, {'d': 2}, {'a': 4}]
对于您的预期输出:
grades = ['b', 'b', 'f', 'c', 'b', 'a', 'a', 'd', 'c', 'd', 'a', 'a', 'b']
occurrence = map(lambda letter: (letter, grades.count(letter)), set(grades))
for item in occurrence:
print(f"{item[0]}={item[1]}")
输出:
c=2
b=4
d=2
f=1
a=4
更新
您可以使用defaultdict()
来计算每个元素的出现次数:
from collections import defaultdict
grades = ['b', 'b', 'f', 'c', 'b', 'a', 'a', 'd', 'c', 'd', 'a', 'a', 'b']
occurrence = defaultdict(lambda: 0)
for character in grades:
occurrence[character] += 1
for key, value in occurrence.items():
print(f"{key}={value}")
输出:
b=4
f=1
c=2
a=4
d=2
推荐阅读
- java - 这个 JPA 持续失败是什么意思?“错误代码:0 调用:INSERT INTO 表(列)值(?)”
- php - nginx 在文件上传时返回 403 禁止错误
- hyperledger-fabric - 如何获取有关特定交易类型的所有信息?
- doctrine - Symfony 4.1 KernelTestCase 存储库 ConnectionException
- apache-kafka - 如何在kafka控制台消费者中打印新行
- android - 带有导航组件的顶部应用栏和底部应用栏的两个不同菜单
- git - 在不使用桌面软件的情况下在线执行 Git 命令(基于 Web 的终端/控制台)?
- python - 尝试发送带有希腊文件名的文件时出现 UnicodeError
- python - 使用逻辑回归的泰坦尼克号机器学习问题
- c++ - Qt Model-View 自定义委托不起作用