python 字典

字典的创建:

>>> phonebook = { 'Alice': '2341', 'Beth': '9102', 'Cecil': '3258'}

dict函数:

>>> items = [('name','pan'),('age', 32)]
>>> d = dict(items)
>>> d
{'name': 'pan', 'age': 32}
>>> d['name']
'pan'
>>> d['age']
32

或者:

>>> t = dict(name='pan',age=32)
>>> t
{'name': 'pan', 'age': 32}

字典的操作方法

len(d)

d[k]

d[k]=v

del d[k]

k in d 

字典格式化字符串:

>>> phonebook = {'Cecil': '3258'}

>>> " Cecil's phone number is %(Cecil)s" % phonebook
" Cecil's phone number is 3258"

字典方法:clear

>>> d = {}
>>> d['name'] = 'Gumby'
>>> d['age'] = 42
>>> d
{'name': 'Gumby', 'age': 42}
>>> returned_value = d.clear()
>>> returned_value

example1:

>>> x = {}
>>> y = x
>>> x['key'] = 'value'
>>> y
{'key': 'value'}
>>> x = {}
>>> y
{'key': 'value'}

example2:

>>> x = {}
>>> y = x
>>> x['key'] = 'value'
>>> y
{'key': 'value'}
>>> x.clear()
>>> y
{}

字典方法:copy

>>> x = {'username': 'admin', 'machines': ['foo', 'bar', 'baz']}
>>> y = x.copy()
>>> y['username'] = 'test'
>>> y['machines'].remove('bar')
>>> y
{'username': 'test', 'machines': ['foo', 'baz']}
>>> x
{'username': 'admin', 'machines': ['foo', 'baz']}

当副本中替制换值的时候,原始字典不受影响,但是如果修该了某个值,原始的字典也会改变。

深复制:deepcopy

>>> from copy import deepcopy
>>> d = {}
>>> d['name'] = ['Alfred', 'Bertrand']
>>> c = d.copy()
>>> dc = deepcopy(d)
>>> d['name'].append('Clive')
>>> c
{'name': ['Alfred', 'Bertrand', 'Clive']}
>>> dc
{'name': ['Alfred', 'Bertrand']}

字典操作方法: fromkeys

>>> {}.fromkeys(['name', 'age'])
{'name': None, 'age': None}
>>> dict.fromkeys(['name', 'age'])
{'name': None, 'age': None}
>>> dict.fromkeys(['name', 'age'],'(unknown)')
{'name': '(unknown)', 'age': '(unknown)'}

字典操作方法:get

>>> d = {}
>>> d.get('name','N/A')
'N/A'

字典操作方法:items

>>> d = {'title': 'Python web site', 'url': 'http://www.python.org', 'spam': 0}
>>> d.items()
dict_items([('title', 'Python web site'), ('url', 'http://www.python.org'), ('spam', 0)])
>>> it = d.__iter__()
>>> it
<dict_keyiterator object at 0x000002410570BF48>
>>> list(it)
['title', 'url', 'spam']

字典操作方法: keys

>>> d.keys()
dict_keys(['title', 'url', 'spam'])

字典操作方法pop

>>> d = {'x': 1, 'y': 2}
>>> d.pop('x')
1
>>> d
{'y': 2}

字典操作方法popitem

>>> d = {'title': 'Python web site', 'url': 'http://www.python.org', 'spam': 0}
>>> d.popitem()
('spam', 0)
>>> d
{'title': 'Python web site', 'url': 'http://www.python.org'}

字典操作方法 setdefault

>>> d = {}
>>> d.setdefault('name', 'N/A')
'N/A'
>>> d
{'name': 'N/A'}
>>> d['name'] = 'Gumdy'
>>> d.setdefault('name', 'N/A')
'Gumdy'
>>> d
{'name': 'Gumdy'}

字典操作方法: update

>>> d = {'title': 'title1', 'change': 'change1'}
>>> x = {'title': 'title2'}
>>> d.update(x)
>>> d
{'title': 'title2', 'change': 'change1'}

字典操作方法values itervalues

>>> d = {}
>>> d[1] = 1
>>> d[2] = 2
>>> d[3] = 4
>>> d.values()
dict_values([1, 2, 4])

>>> list(d.values())
[1, 2, 4]

原文地址:https://www.cnblogs.com/lianghong881018/p/11078049.html