如何正确地将项目添加到列表中

2024-06-28 20:50:10 发布

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

我目前正在学习python。我正在学习类、继承和抽象类。这是有问题的构造器:

def __init__(self, sourceCollection = None):
    """Sets the initial state of self, which includes the
    contents of sourceCollection, if it's present."""
    self.size = 0
    if sourceCollection:
        for item in sourceCollection:
            self.add(item)

我得到以下错误,我不知道为什么:

TypeError: 'int' object is not iterable

如果有帮助,以下是我的添加方法:

def add(self, item):
    """Adds item to self."""
    # Check array memory here and increase it if necessary
    
    self.items[len(self)] = item
    self.size += 1

有人能帮我解释为什么我会犯这个错误吗?我做了一些研究,但没有结果。提前谢谢你


Tags: oftheselfnoneaddsizeifinit
2条回答

只要做(.append()):

def add(self, item):
    """Adds item to self."""
    # Check array memory here and increase it if necessary
    
    self.items.append(item)
    self.size += 1

list有一个方法可以从iterable中添加所有元素

不要使用self.size来跟踪self.items中的元素数量,请使用len(self.items)

def __init__(self, sourceCollection = None):
    """Make a copy of sourceCollection"""
    self.items = []
    if not sourceCollection: return
    self.items.extend(sourceCollection)

def add(self, item):
    """Adds item to self."""
    self.items.append(item)

@property
def size(self):
    return len(self.items)

相关问题 更多 >