我正在尝试创建一个类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']]
答案 0 :(得分:2)
您需要将以下内容移出循环:
book=BookStack()
相反,在进入循环之前执行一次。
您只想创建一个BookStack
。之后,只需push
本新书。如果您重新创建它,则会看到空BookStack
。