Home  >  Article  >  Backend Development  >  Detailed explanation of the application of Python dictionary

Detailed explanation of the application of Python dictionary

巴扎黑
巴扎黑Original
2016-12-08 11:14:571558browse

1. Create dictionary

Method①:
>>> dict1 = {}
>>> dict2 = {'name': 'earth', 'port': 80}
>> > dict1, dict2
({}, {'port': 80, 'name': 'earth'})

Method②: From Python 2.2 version onwards
>>> fdict = dict(([' x', 1], ['y', 2]))
>>> fdict
{'y': 2, 'x': 1}

Method ③:

From Python 2.3 version onwards, You can use the convenient built-in method fromkeys() to create a "default" dictionary where the elements have the same value (defaults to None if not given): ddict = { }.fromkeys(('x', 'y'), -1)
>>> ddict
{'y': -1, 'x': -1}
>>>
> ;>> edict = {}.fromkeys(('foo', 'bar'))
>>> edict
{'foo': None, 'bar': None}

2. How to access Values ​​in a dictionary

① To traverse a dictionary (usually using keys), you only need to loop through its keys, like this:
>>> dict2 = {'name': 'earth', 'port ': 80}
>>>
>>>> for key in dict2.keys():
... print 'key=%s, value=%s' % (key, dict2 [key])
...
key=name, value=earth
key=port, value=80

②Starting from Python 2.2
Traverse the dictionary in a for loop.
>>> dict2 = {'name': 'earth', 'port': 80}
>>>
>>>> for key in dict2:
... print 'key=%s, value=%s' % (key, dict2[key])
...
key=name, value=earth
key=port, value=80


To get an element in the dictionary The value of can be obtained by using the dictionary key you are familiar with plus square brackets:
>>> dict2['name']
'earth'
>>>
>>> print 'host %s is running on port %d' %
... (dict2['name'], dict2['port'])
host earth is running on port 80


③All methods of dictionary. The methods has_key() and in and not in operators are all of Boolean type
>>> 'server' in dict2 # or dict2.has_key('server')
False
>>> 'name' in dict # or dict2.has_key('name')
True
>>> dict2['name']
'earth'
An example of mixing numbers and strings in a dictionary:
>>> dict3 = {}
>>> dict3[1] = 'abc'
>>> dict3['1'] = 3.14159
>>> dict3[3.2] = 'xyz'
>>> dict3
{3.2: 'xyz', 1: 'abc', '1': 3.14159}


3. Update the dictionary

adopt overwriting update
In the above example, dict2['name']= 'earth';
Update dict2['name']='abc';

4. Delete dictionary elements and dictionary
del dict2['name'] # Delete the entry with the key "name"
dict2.clear() # Delete all entries in dict2
del dict2 # Delete the entire dict2 dictionary
dict2.pop('name') # Delete and return the entry with key "name"

dict2 = {'name': 'earth', 'port' dict2.values()
[80, 'earth ']
>>>
>>> dict2.items()
[('port', 80), ('name', 'earth')]
>>>
> ;>> for eachKey in dict2.keys():
... print 'dict2 key', eachKey, 'has value', dict2[eachKey]
...
dict2 key port has value 80
dict2 key name has value earth


update() method can be used to add the contents of one dictionary to another dictionary

{'server': 'http', 'port': 80, 'host': 'venus'}
dict3.clear()
>>> dict3
>>> , y=2)
{'y': 2, 'x': 1}
>>> dict8 = dict(x=1, y=2)
>>> dict8
{'y ': 2, 'x': 1}
>>> dict9 = dict(**dict8)
>>> dict9
{'y': 2, 'x': 1}

dict9 = dict8.copy()

Dictionary built-in method:

Dictionary key value: dict9.keys()

Dictionary value: dict9.values()

All dictionary items: dict9.items()

Return dictionary value :dict9.get('y')

Table 7.2 Dictionary type methods

Method name operation

dict.cleara() deletes all elements in the dictionary

dict.copya() returns a copy of the dictionary (shallow copy)

dict.fromkeysc(seq,val=None) c creates and returns a new dictionary , use the elements in seq as the keys of the dictionary, and val as the initial values ​​corresponding to all keys in the dictionary (if this value is not provided, it defaults to None)

dict.get(key,default=None)a for the dictionary The key key in dict returns its corresponding value value. If the key does not exist in the dictionary, the value of default is returned (note that the default value of parameter default is None)

dict.has_key(key) If key(key) Exists in the dictionary, returns True, otherwise returns False. After the introduction of in and not in in Python 2.2, this method has been almost abandoned, but it still provides a working interface.

dict.items() Returns a list containing tuples of (key, value) pairs in the dictionary

dict.keys() Returns a list containing the keys in the dictionary

dict.iter()d method iteritems(), iterkeys(), itervalues() are the same as their non-iterative counterparts, except that they return an iterator instead of a list.

dict.popc(key[, default]) c is similar to the method get(). If the key key exists in the dictionary, delete and return dict[key]. If the key key does not exist and no default value is given, raise KeyError exception.

dict.setdefault(key,default=None)e is similar to the method set(). If the key key does not exist in the dictionary, it is assigned a value by dict[key]=default.

dict.update(dict2)a Adds the key-value pairs of dictionary dict2 to dictionary dict

dict.values() returns a list containing all the values ​​in the dictionary

①②③④⑤⑥⑦⑧⑨⑩
6. Set type
① Use set Factory methods set() and frozenset():
>>> s = set('cheeseshop')
>>> s
set(['c', 'e', ​​'h', ' o', 'p', 's'])
>>> t = frozenset('bookshop')
>>> t
frozenset(['b', 'h', 'k' , 'o', 'p', 's'])
>>> type(s)

>>> type(t)


②How to update a set
Use various built-in methods and operators to add and delete members of the set:
>>> s.add('z')
>>> ; s
set(['c', 'e', ​​'h', 'o', 'p', 's', 'z'])
>>> s.update('pypi')
>>> s
set(['c', 'e', ​​'i', 'h', 'o', 'p', 's', 'y', 'z'])
>>> s.remove('z')
>>> s
set(['c', 'e', ​​'i', 'h', 'o', 'p', 's', 'y'])
>>> s -= set('pypi')
>>> s
set(['c', 'e', ​​'h', ' o', 's'])

③Delete set
del s

④Membership (in, not in)
>>> s = set('cheeseshop')
>>> t = frozenset('bookshop')
>>> 'k' in s
False
>>> 'k' in t
True
>>> 'c' not in t
True

⑤Sets are equivalent/not equivalent
>>> s == t
False
>>> s != t
True
>>> u = frozenset(s)
>>> s == u
True
>>> set('posh') == set('shop')
True

⑥Difference complement/relative complement (-)
two The difference complement or relative complement of a set (s and t) refers to a set C. The elements in this set only belong to the set s, not to the set t. There is an equivalent method for the difference sign, difference().
>>> s - t
set(['c', 'e'])

Symmetric difference (^): The symmetric difference is the XOR of the set

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Previous article:Python decoratorsNext article:Python decorators