Home  >  Article  >  Backend Development  >  Detailed explanation of the usage of Python dictionary (with examples)

Detailed explanation of the usage of Python dictionary (with examples)

不言
不言forward
2018-10-09 15:55:013090browse

This article brings you a detailed explanation of the usage of Python dictionary (with examples). It has certain reference value. Friends in need can refer to it. I hope it will be helpful to you.

The expression form of dictionary is: {key:value}, the keys and values ​​are separated by colons, and each key-value pair is separated by a colon. Separate with commas, such as {'name':'Superman','age':500}. Please note that the type of key must be an immutable type. Python performs a hash function operation on the key and determines the storage address of the value based on the calculation result. , so the dictionary is stored unordered. The addition, deletion and modification of the dictionary are as follows:

Add

You can modify the dictionary through direct assignment. When the specified key does not exist, an additional key will be added at the end. Key-value pairs

dic = {'name':'刘先生','age':'39','job':'工程师','marr':'已婚'}
dic['age'] = 20
dic['lover'] = '小昭'
print(dic)
输出:
{'name': '刘先生', 'age': 20, 'job': '工程师', 'marr': '已婚', 'lover': '小昭'}

You can also use the setdefaultv(key,value) method to add key-value pairs
If the key exists, no changes will be made. If the key does not exist, a new one will be added at the end. Key value, and if no value is given, it defaults to None
One sentence can be summarized as "if there is one, ignore it, if not, add it", which can be used in the loop

dic = {'name':'刘先生','age':'39','job':'工程师','marr':'已婚'}
dic.setdefault('name','超人')
dic.setdefault('lover','小姐姐')
print(dic)
输出:
{'name': '刘先生', 'age': '39', 'job': '工程师', 'marr': '已婚', 'lover': '小姐姐'}

Delete : pop() clear del

pop Delete the value corresponding to the specified key and return the deleted value. If the key does not exist, an error will be reported.

dic = {'name':'刘先生','age':'39','job':'工程师','marr':'已婚'}
res = dic.pop('name')
print(dic,'返回值:',res)
输出:
{'age': '39', 'job': '工程师', 'marr': '已婚'} 返回值: 刘先生

When using pop(), you can also add a parameter to specify the return value. If the given key does not exist, the given return value will be returned. This method is very easy to use and can prevent the key from not being found. If it exists, an error will be reported. If it exists, it will be deleted. If it does not exist, the specified string will be returned.

dic = {'name':'刘先生','age':'39','job':'工程师','marr':'已婚'}
res = dic.pop('小三儿','查无此人')
print('返回值:',res)
输出:
返回值: 查无此人

clear is used to clear the dictionary.

dic = {'name':'刘先生','age':'39','job':'工程师','marr':'已婚'}
dic.clear()
print(dic)
输出:
{}

del is used to delete the specified key value. If only the dictionary name is given, the entire dictionary object will be deleted

dic = {'name':'刘先生','age':'39','job':'工程师','marr':'已婚'}
del dic['name']
#del dic
print(dic)
输出:
{'age': '39', 'job': '工程师', 'marr': '已婚'}

Change: See "Add ”

Check:

You can directly specify the key to access the dictionary. If there is a key, the corresponding value will be returned. If not, an error will be reported:

dic = {'name':'刘先生','age':'39','job':'工程师','marr':'已婚'}
a = dic['name']
print(a)
输出:
刘先生

You can query all keys, values, and key-value pairs through the dictionary's three methods keys(), values(), and items() respectively.

dic = {'name':'刘先生','age':'39','job':'工程师','marr':'已婚'}
a = dic.keys()
b = dic.values()
c = dic.items()
print('keys():',a)
print('values():',b)
print('items():',c)
输出:
keys(): dict_keys(['name', 'age', 'job', 'marr'])
values(): dict_values(['刘先生', '39', '工程师', '已婚'])
items(): dict_items([('name', '刘先生'), ('age', '39'), ('job', '工程师'), ('marr', '已婚')])

You can also use a for loop to traverse these three methods to obtain the key values ​​separately.

dic = {'name':'刘先生','age':'39','job':'工程师','marr':'已婚'}
for k in dic.keys():
    print(k)
输出:
name
age
job
marr
dic = {'name':'刘先生','age':'39','job':'工程师','marr':'已婚'}
for v in dic.values():
    print(v)
输出:
刘先生
39
工程师
已婚
dic = {'name':'刘先生','age':'39','job':'工程师','marr':'已婚'}
for k,v in dic.items():
    print(k,v)
输出:
name 刘先生
age 39
job 工程师
marr 已婚

Other methods of dictionary

len(dict)
Calculate the number of dictionary elements.
str(dict)
Convert the dictionary to a string, such as:

dic = {'name':'刘先生','age':'39','job':'工程师','marr':'已婚'}
a = str(dic)
import re
res = re.search(r'name',a)
print(res)
输出:
<_sre.SRE_Match object; span=(2, 6), match=&#39;name&#39;>

因为把dic转化为字符串并赋值给a,所以可以对a进行正则匹配
而如果直接对dic进行正则匹配则报错,因为dic不是字符串类型。

copy()
Return a dictionary Copy

dict.fromkeys(seq,'value')
Use the elements in the sequence seq as the keys of the dictionary, and value as the initial value to create a dictionary. If the parameter value is not given, Then the value corresponding to each key is Non. Note: This is a "class method", so when using it, add dict.

seq = ['a',1,'b']
a = dict.fromkeys(seq,'value')
print(a)
输出:
{'a': 'value', 1: 'value', 'b': 'value'}

get(key, default=None)
Return the value of the specified key, or return the default value if the key does not exist.

popitem()
Delete and return a key-value pair of the dictionary. If the dictionary is empty, an error will be reported.

dic = {'name':'刘先生','age':'39','job':'工程师','marr':'已婚'}
res1 = dic.popitem()
res2 = dic.popitem()
res3 = dic.popitem()
print(res1,res2,res3,dic)
输出:
('marr', '已婚') ('job', '工程师') ('age', '39') {'name': '刘先生'}

update([other])
Update the dictionary with key-value pairs. If the key already exists, the corresponding value will be replaced. The parameter is another dictionary or iterable Key-value pairs, such as:

dic = {'name':'刘先生','age':'39','job':'工程师','marr':'已婚'}
it = ((i,i**2) for i in range(1,4))
dic.update(it)
print(dic)
输出:
{'name': '刘先生', 'age': '39', 'job': '工程师', 'marr': '已婚', 1: 1, 2: 4, 3: 9}
也可以用下面的方式指定键对应的值,比如
dic.update(name = '李小姐',age = 22)

The above is the detailed content of Detailed explanation of the usage of Python dictionary (with examples). For more information, please follow other related articles on the PHP Chinese website!

Statement:
This article is reproduced at:segmentfault.com. If there is any infringement, please contact admin@php.cn delete