python - 计算 Python 列表中的类实例

标签 python python-2.7 python-3.x count instances

我想知道计算特定对象的出现次数(用户定义的类实例)在 Python 列表中的最好和最快的方法是什么?

例如,如果我们有一个名为MyClass

class MyClass:
    """A simple example class"""
    i = 42
    def foo(self):
        return “Hello world”

和一个由六个元素组成的列表myList:

myList = [MyClass(), MyClass(), 2, 3, 'egg', MyClass()]

我们可以通过迭代 myList 并使用 isinstance() 函数来计算一个对象的出现次数,它是一个 MyClass 实例 :

count = 0

for item in myList:
    if isinstance(item, MyClass):
        count += 1

但是是否有更好更pythonic的方法来做到这一点?

最佳答案

您可以使用 sum 进行此类计数,因为 True 等于一而 False 等于零:

count = sum(isinstance(x, MyClass) for x in myList)

关于python - 计算 Python 列表中的类实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29450638/

相关文章:

python - 无法安装 quandl

python - 谷歌云视觉 API : "Request had insufficient authentication scopes."

python - 使用在 windows 上为 linux 创建的 conda env

python - 如何用边连接两个子图?

Python 2.7 - 过滤目录内文件名中具有特定字符串的文件

python - 使用 pd.DataFrame 以高斯分布重新分布数据

Python 子进程不会终止

python - 如何在python中使用正则表达式提取两个子字符串之间的字符?

python - 从 Python 字典中的列表中提取字符串

python - 处理XML标签并提取对应的标签内容