python将对象附加到列表中

2024-10-06 07:45:19 发布

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

我有以下代码:

receps =[1,1,1,2,2,2,2,3,3,3,3,3,3]
listRecep = []
listNumRecep = []
class Line:
    def __init__(self,recep) :
        self.recep = recep
        
class Recep:
    recep=""
    lines = []

for recep in receps:
        l=Line(recep)
        if recep not in listNumRecep:
            listNumRecep.append(recep)
            r=Recep()
            r.recep=recep
            r.lines.append(l)
            #print(l.recep)
            listRecep.append(r)
        else:
            for re in listRecep:
                if re.recep == recep:
                    re.lines.append(l)
                    #print(l.recep)
        
for re in listRecep:
    print (re.lines[0].recep)

基本上,我想要的是将同一个“Recep”的每一行“Line”存储到一个包含在“Recept”对象中的列表中。 然后我打印第一行的recep

因此,预期的产出将是:

1
2
3

但实际上我有

1
1
1

看起来每次列表中都会存储第一行,这是我不理解的,因为当我打印l.recep(注释行)时,会打印正确的输出,所以问题是“行”影响到“recep”


Tags: inselfreforiflineclasslines