Dictionary
After previous study, we can know that list and tuple can be used to represent ordered sets. In our previous example, we used list to store the user's nickname
user=['liangdianshui','twowater','兩點水']
If we need to also store the user's account number Record it?
Using a list can be solved like this:
user=[['liangdianshui','111111'],['twowater','222222'],['兩點水','333333']]
But it is inconvenient to express it this way, and it is difficult to find the corresponding nickname based on the nickname, and the longer the list, the longer it takes; at this time, It can be represented by dict (dictionary). Python has a built-in dictionary (dict). The full name of dict is dictionary, which is equivalent to the map in JAVA. It uses key-value (key-value) storage and has extremely fast search speed.
user={'liangdianshui':'111111' ,'twowater':'222222' ,'兩點水':'333333'}
1. Creation of dict (dictionary)
Dictionary is another variable container model and can store any type of object.
Each key-value (key=>value) pair in the dictionary is separated by a colon (:), each pair is separated by a comma (,), and the entire dictionary is included in curly braces ({}) , the format is as follows:
dict = {key1 : value1, key2 : value2 }
Note: The key must be unique, but the value does not have to be. Values ??can be of any data type, but keys must be immutable.
Create dict (dictionary) instance:
dict1={'liangdianshui':'111111' ,'twowater':'222222' ,'兩點水':'333333'} dict2={'abc':1234,1234:'abc'}
2. Access dict (dictionary)
#-*-coding:utf-8-*- dict1={'liangdianshui':'111111' ,'twowater':'222222' ,'兩點水':'333333'} print(dict1)
Output result:
{'liangdianshui': '111111', 'twowater': '222222', '兩點水': '333333'}
One thing to note here is: if this key does not exist in the dictionary, an error will be reported.
3. Modify dict (dictionary)
The way to add new content to the dictionary is to add new key/value pairs, modify or delete existing key/value pairs
#-*-coding:utf-8-*- dict1={'liangdianshui':'111111' ,'twowater':'222222' ,'兩點水':'333333'} print(dict1) # 新增一個鍵值對 dict1['jack']='444444' print(dict1) # 修改鍵值對 dict1['liangdianshui']='555555' print(dict1)
Output results:
{'liangdianshui': '111111', 'twowater': '222222', '兩點水': '333333'} {'liangdianshui': '111111', 'twowater': '222222', '兩點水': '333333', 'jack': '444444'} {'liangdianshui': '555555', 'twowater': '222222', '兩點水': '333333', 'jack': '444444'}
4. Delete dict (dictionary)
You can delete an element in dict (dictionary) through del , can also delete dict (dictionary)
All elements in the dictionary can be cleared by calling the clear() method
#-*-coding:utf-8-*- dict1={'liangdianshui':'111111' ,'twowater':'222222' ,'兩點水':'333333'} print(dict1) # 通過 key 值,刪除對應(yīng)的元素 del dict1['twowater'] print(dict1) # 刪除字典中的所有元素 dict1.clear() print(dict1) # 刪除字典 del dict1
The output result:
{'liangdianshui': '111111', 'twowater': '222222', '兩點水': '333333'} {'liangdianshui': '111111', '兩點水': '333333'} {}
5, Things to note when using dict (dictionary)
(1) dict (dictionary) does not allow a key to be created twice, but if it appears when creating a dict (dictionary) If a key value is assigned twice, the last assigned value will prevail
For example:
#-*-coding:utf-8-*- dict1={'liangdianshui':'111111' ,'twowater':'222222' ,'兩點水':'333333','twowater':'444444'} print(dict1) print(dict1['twowater'])
The output result:
{'liangdianshui': '111111', 'twowater': '444444', '兩點水': '333333'} 444444
( 2) dict (dictionary) keys must be immutable, but keys can be used as numbers, strings or tuples, but lists cannot be used
For example:
#-*-coding:utf-8-*- dict1={'liangdianshui':'111111' ,123:'222222' ,(123,'tom'):'333333','twowater':'444444'} print(dict1)
Output results:
{'liangdianshui': '111111', 123: '222222', (123, 'tom'): '333333', 'twowater': '444444'}
(3) The order in which dict is stored internally has nothing to do with the order in which keys are put in.
Compared with list, dict has the following characteristics:
The search and insertion speed is extremely fast and will not slow down as the key increases.
It takes up a lot of memory and wastes a lot of memory.
The opposite is true for list:
The search and insertion time increases as the number of elements increases
It takes up little space and wastes very little memory
6. Functions and methods of dict (dictionary)
Methods and functions | Description |
cmp(dict1, dict2) | Compare two dictionaries Element |
len(dict) | Calculate the number of dictionary elements |
str(dict) | Output the printable string representation of the dictionary |
type(variable) | Return the input variable type, if the variable is a dictionary, return the dictionary type |
dict.clear() | Delete all elements in the dictionary |
dict.copy() | Return a dictionary Copy |
dict.values() | Return all values ??in the dictionary as a list |
popitem() | Randomly returns and deletes a pair of keys and values ??in the dictionary |
dict.items() | Returns a traversable (key, value) element as a list Group array |