类中的嵌套列表

时间:2017-11-09 15:29:28

标签: python list class append nested-lists

我正在尝试创建一个类BookStack(),其中我希望用户输入书号和名称作为列表,它将附加到已创建的列表,从而形成嵌套列表。 我的代码如下:

class BookStack():
    def __init__(self):
        self.books=[]

    def push(self,books):
        self.books.append(books)
        print self.books

    def pop(self):
        self.books.pop()

    def __str__(self):
        for i in self.books:
            print i,'\n'

def main():
    while 1:
        print "             1. Enter Book Credentials"
        print "     2. Remove the most recent book from database"
        print "                3. Print Database"

        choice=int(raw_input("Enter Choice: "))
        if(choice==1):
            book=BookStack()
            BookNumName=input("Enter Book Name & Number as [Number,Name]: ")
            book.push(BookNumName)
        elif(choice==2):
            book.pop()
        elif(choice==3):
            book.__str__()
        proceed=raw_input("Do you want to enter more(Y/N)?: ")
        if(proceed!='y' and proceed!='Y'):
            break

if __name__=='__main__':
    main()

但如果我输入的列表如[1,' A'],[2,' B'],[3,' C'],输出

[[3, 'C']]

我想要的输出:

[[1,'A'],[2,'B'],[3, 'C']]    

1 个答案:

答案 0 :(得分:2)

您需要将以下内容移出循环:

book=BookStack()

相反,在进入循环之前执行一次。

您只想创建一个BookStack。之后,只需push本新书。如果您重新创建它,则会看到空BookStack