在尝试将列表附加为我的字典的定义时,我目前遇到了嵌套列表的这个输出。
我知道这可能比我应该包含的代码更多,但我认为显示更多比更少更有帮助。
class Account:
accountInfo = {} #ex. ID : 5FE19C (hexadecimal ID's)
def __init__(self):
choice = raw_input("Would you like to login or signup?\n")
if choice.lower() == "login":
self.login()
elif choice.lower() == "signup":
print "Great! Fill in the following."
self.signup()
else:
self.__init__()
def signup(self):
import random
accountID = '%010x' % random.randrange(16**10) # 10 digit hexadecimal ID generator
personalInfo = []
self.accountInfo[accountID] = []
firstName = raw_input("First Name: ")
lastName = raw_input("Last Name: ")
email = raw_input("E-Mail: ")
password = raw_input("Password: ")
birthdate = raw_input("DOB (DD/MM/YYYY): ")
alias = raw_input("Username/Alias: ")
personalInfo.append(firstName)
personalInfo.append(lastName)
personalInfo.append(email)
personalInfo.append(password)
personalInfo.append(birthdate)
personalInfo.append(alias)
for i in range(1):
self.accountInfo[accountID].append(personalInfo)
#creates an unwanted nested list, but the output is correct
print self.accountInfo
我不明白为什么我在字典中得到嵌套列表的输出。字典的内容是正确的,但它只是那个不需要和不必要的嵌套列表。
输出:
>>> {'6de7bcf201': [['firstName', 'lastName', 'email', 'password', 'birthdate', 'alias']]}
我认为这很直接:
personalInfo
是一个列表。您将项目附加到它并得到类似[..,..,..]
. 您self.accountInfo[accountID]
也将值作为列表启动。然后将第一个列表附加到第二个列表,为您提供一个列表列表。
而不是self.accountInfo[accountID].append(personalInfo)
尝试self.accountInfo[accountID] = personalInfo
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句