我试图将用户输入对象的一个新实例存储在一个元组中,然后将每个元组存储在一个列表中一次
def main():
global holiday_data_obj
global holiday_datastore
holiday_data_obj = []
holiday_datastore = []
while True:
if input("Add Holiday Package? (y/n) ") == "n":
break
else:
idnum = int(input('Enter your unique id number: '))
dcity = str(input('Enter your destination city : '))
add_packages(idnum, dcity)
print_packages()
def add_packages(idnum, dcity):
holiday_data_obj.append( HolidayData(idnum, dcity))
for package in holiday_data_obj:
F = tuple(package.__dict__.values())
holiday_datastore.append(F)
def print_packages():
print(holiday_datastore)
我得到的输出模式是:
[(1, 'first city'), (1, 'first city'), (2, 'second city'), (1, 'first city'), (2, 'second city'), (3, 'third city')]
我知道我的附加逻辑是错误的。我无法实现一个只将最新的元组输入添加到列表并保留列表中以前的元组的解决方案
add_packages
内的循环将holiday_data_obj
的完整内容的元组添加到每个调用的holiday_datastore
末尾。所以第一个调用添加第一个元素,然后添加前两个元素,依此类推。如果您只想向它添加一个项,那么不应该迭代holiday_data_obj
,而应该为holiday_data_obj[-1]
添加一个元组相关问题 更多 >
编程相关推荐