Michael Jones
Michael Jones

Reputation: 35

Setting a dictionarys items to a variable

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

Answers (1)

chepner
chepner

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

Related Questions