Share dictionaries in python and share dictionaries in python
The keys in the dictionary must meet the following two conditions:
1. Each key can correspond to only one item, that is, it is not allowed when one key corresponds to multiple values (except list, tuples, and other dictionary container objects ). When a key conflict occurs (that is, the dictionary key is assigned a value repeatedly), the last value is assigned.
Copy codeThe Code is as follows: >>> myuniversity_dict = {'name': 'yuanyuan ', 'age': 18, 'age': 19, 'age': 20, 'schoolname ': chengdu, 'schoolname': Xinxiang}
Traceback (most recent call last ):
File "<stdin>", line 1, in <module>
NameError: name 'hangzhou' is not defined
>>> Myuniversity_dict = {'name': 'yuanyuan ', 'age': 18, 'age': 19, 'age': 20, 'schoolname': 'chengdu ', 'schoolname': 'sinxiang '}
>>> Myuniversity_dict
{'Age': 20, 'name': 'yuanyuan ', 'schoolname': 'xinxiang '}
>>>
2. Keys must be Hash-able, and can be variable types such as lists and dictionaries. They cannot be used as Dictionary keys because they cannot be Hash-able.
Why? -- The Interpreter calls the hash function to calculate the location of your data based on the value in the dictionary. If the key is a mutable object, you can modify the key itself. When the key changes, the hash function maps to different addresses to store data, in this way, the hash function cannot store or obtain relevant data reliably. The reason for selecting a hash key is that their values cannot be changed. An example of extracting python core programming (version 2) is as follows:
#!/usr/bin/env pythondb = {}def newuser(): prompt = 'login desired: ' while True: name = raw_input(prompt) if db.has_key(name): prompt = 'name taken, try another\n' continue else: break pwd = raw_input('passwd: ') db[name] = pwddef olduser(): name = raw_input('login: ') pwd = raw_input('passwd: ') passwd = db.get(name) if passwd == pwd: print 'welcome back', name else: print 'login incorrect'def showmenu(): prompt = """(N)ew User Login(E)xisting User Login(Q)uitEnter choice:""" done = False while not done: chosen = False while not chosen: try: choice = raw_input(prompt).strip()[0].lower() except: choice = 'q' print '\nYou picked: [%s]' % choice if choice not in 'neq': print 'invalid option, try again' else: chosen = True if choice == 'q':done = True if choice == 'n':newuser() if choice == 'e':olduser()if __name__ == '__main__': showmenu()
Running result:
[root@localhost src]# python usrpw.py (N)ew User Login(E)xisting User Login(Q)uitEnter choice:nYou picked: [n]login desired: rootpasswd: 1(N)ew User Login(E)xisting User Login(Q)uitEnter choice:nYou picked: [n]login desired: rootname taken, try another