Reputation: 35
I was wondering if this would be possible, to save a dictionary item to a variable. So simply this is what I am doing. I am saving this item to a dictionary:
accounts{}
def accountcreator():
newusername = raw_input()
newpassword = raw_input()
UUID = 0
UUID += 1
accounts[newusername] = {newpassword:UUID}
Now basically I will be looping through the newusernames in a separate function:
def accounts():
username = raw_input()
for usernames in accounts:
if usernames == username:
#Not sure what to do from here on out
else:
accounts()
This is where I get confused. So if the username input equals a newusername in the accounts dictionary it will contiune on. I want it to save that newusernames password and UUID (the {newpassword:UUID} part) to a variable. So basically if the newusername equals the username input it will save the rest of thats informations (the {newpassword:UUID}) to a variable. So in the end the variable lets say accountinfo = {newpassword:UUID}. Thank you, I hope that makes sense.
Upvotes: 0
Views: 68
Reputation: 530960
There are a couple of errors in your code. First, probably a typo:
accounts = {}
Next, when you create the code, you are always resetting UUID
to 0, making the increment a little pointless. Initialize UUID
outside the function, like you do with accounts
:
UUID = 0
def accountcreator():
newusername = raw_input()
newpassword = raw_input()
UUID += 1
accounts[newusername] = {newpassword:UUID}
Third, I'm not sure why you are mapping the password to the UUID. Likely, you want two separate fields in the user dictionary to store both:
accounts[newusername] = { 'password': newpassword, 'UUID': UUID }
Finally, the whole point of using a dictionary to map user names to information is that you don't need to iterate over the entire dictionary; you just index the dictionary with the user name. You do have to take care that you don't try to access a nonexistent key, though.
# Use a different name; accounts is already a dictionary
def get_account():
username = raw_input()
if username in accounts:
return accounts[username]
else:
print("No account for {0}".format(username))
Upvotes: 1