使用实例方法连接列表

Using instance method to concatenate a list

我有一只 class 命名股票,我正在尝试连接一个对象的季度收益。

class Stock :
    def __init__(self,name,report_date,earning,estimate):
        self.Name = name
        self.Report_date = report_date
        self.Earning = [earning]
        self.Estimate = estimate
    def list_append(self,earning):
        self.Earning = [self.Earning,earning]
example = Stock('L',2001,10,10)
example.list_append(11)
example.list_append(12)
example.list_append(13)

像这样。 所以最后我想要 example.Earning = [10,11,12,13] 的输出。 但输出结果为 example.Earning = [[[[10], 11], 12],13] 我尝试了以下方法。

self.Earning = (self.Earning).append(earning)
Error = "int" does not have attribute append

self.Earning[-1:] = earning

但是他们向我抛出错误。 我怎样才能摆脱这个嵌入式列表([[[10],11],12])并只制作一个列表([10,11,12,13])?

要解决您的问题并摆脱嵌入式列表,您可以这样做:

def list_append(self,earning):
        self.Earning = [*self.Earning,earning]

* 将扩展旧列表 self.Earnings 并将 earning 添加到新列表并将其分配给 self.Earning

或者简单地使用方法 append:

def list_append(self,earning):
    self.Earning.append(earning)

嵌套列表以这种方式出现,因为在 self.Earning = [earning] 的初始化中,您将每个“收入”从 int 存储到列表中,然后将列表存储到列表中。您可以简单地重写 list_append 函数。

def list_append(self, earning):
    self.Earning.append(earning)