了解如何在将类对象附加到列表时使用list.count()

2024-09-27 09:31:23 发布

您现在位置:Python中文网/ 问答频道 /正文

每当我试图在附加了对象的列表上使用list.count()时,我就会遇到一个问题

我的代码示例如下所示:

class Person:
    def __init__(self, Name, Age, Gender):
        self.Name = Name
        self.Age = Age
        self.Gender = Gender

personlist = [Person("Joan", 15, "F"), 
        Person("Henry", 18, "M"), 
        Person("Marg", 21, "F")]

print(list.count(personlist))

每次我尝试这个,我都会

TypeError: list.count() takes exactly one argument (0 given)

有人能给我解释一下为什么python在列表中有3个对象时看到0个参数吗


Tags: 对象代码nameself示例列表ageinit
1条回答
网友
1楼 · 发布于 2024-09-27 09:31:23

您可能来自其他语言,其中list.count(somelist)返回列表中的元素数。在python中,情况有点不同list是一个内置名称,您可以在其中将项目传递给它,它将为您创建一个list。让我们看看list.count

Help on method_descriptor:

count(self, value, /)
    Return number of occurrences of value.

暂时忽略结尾处的/。如您所见,它返回valueself的出现次数。当您在列表实例上调用.count时,您的实例将作为selfto count方法传递。所以您只需要将value作为一个参数

>>> my_list = [1, 2, 1, 1, 3]
>>> my_list.count(1)
3

但是,当您在list本身上调用.count时,Python需要知道您在谈论哪个列表:

>>> list.count(my_list, 1)
3

看看你问问题的方式,你可能想知道列表中的项目数。如果是这样的话,您应该使用len

>>> len(my_list)
4

相关问题 更多 >

    热门问题