我正在尝试编写一个代码,询问不同的用户他们的梦想度假目的地。它是一个字典,其中键是民意调查者的名字,值是一个名为“梦想”的列表。我想在创建新密钥时创建一个新变量。最好的方法是什么?
vacation_poll = { }
dream_vacations = [ ]
while True:
name = input('What is your name?: ')
while True:
dream_vacation = input('Where would you like to visit?: ')
repeat = input('Is there anywhere else you like to visit? (Yes/No): ')
dream_vacations.append(dream_vacation)
if repeat.lower() == 'no':
vacation_poll[name] = dream_vacations
break
new_user_prompt = input('Is there anyone else who would like to take the poll? (Yes/No): ')
if new_user_prompt.lower() == 'no':
break
我当前的代码不起作用,因为创建的每个密钥都具有相同的值。
答案 0 :(得分:1)
尝试更改
vacation_poll = { }
dream_vacations = [ ]
while True:
到
vacation_poll = { }
while True:
dream_vacations = [ ]
他们都有相同的梦想假期的原因是因为当你分配dream_vacations时,你引用的是相同的列表。如果你dream_vacations = [ ]
在一个新人的开头,dream_vacations将指向一个不相关的列表,所以没有奇怪的重复
答案 1 :(得分:1)
您不需要创建新变量(我可以想到无情况,您可以动态地想要这样做)。相反,每次只需清空dream_vacations
,即:
new_user_prompt = input('Is there anyone else who would like to take the poll? (Yes/No): ')
dream_vacations = []
if new_user_prompt.lower() == 'no':
break
这会将其设置为空白列表,因此它现在为空并且适用于下一个用户。