(4)python 字典

创建字典

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

以 value :key  键值对的格式。冒号前是键,冒号后时值 ,组合在一起是一项。多个项放在一个花括号内。

函数dict()用来把其他项创建成一个字段

>>> item = [('name', 'tom'), ('age', 17)]
>>> d=dict(item)
>>> d
{'name': 'tom', 'age': 17}

或者

>>> d = dict(name='tom', age=17)
>>> d
{'name': 'tom', 'age': 17}

len() 返回字段包含项的个数

>>> len(d)
2

通过字典的键访问值

>>> d['name']
'tom'

修改或增加一个项

>>> d['age']=18
>>> d
{'name': 'tom', 'age': 18}
>>> d['a']=33
>>> d
{'name': 'tom', 'age': 18, 'a': 33}

删除一项

>>> del d['a']
>>> d
{'name': 'tom', 'age': 18}

检查字段是否有此键

>>> 'age' in d
True

字典方法

1.clear() 删除所有项

2.copy() 返回一个新字典

y=x.copy()

修改值原字典不会受影响,替换值原字典会受到影响。

遇到替换问题可以用深复制的方法--暂时不想了解

3.fromkeys()

创建一个新字典,每个键对应的值为None。

>>> dd={}.fromkeys(['name','age'])
>>> dd
{'name': None, 'age': None}

如果不行默认None

>>> xx={}.fromkeys(['name','age'],'abc')
>>> xx
{'name': 'abc', 'age': 'abc'}

4.get

get和键访问一样。但是键访问没有的键会引发异常。get访问没有得键会返回None

>>> xx['a']
Traceback (most recent call last):
  File "<pyshell#78>", line 1, in <module>
    xx['a']
KeyError: 'a'
>>> xx.get('name')
'abc'
>>> xx.get('a')
>>> 
>>> 

5.items

 返回一个字典视图

>>> d
{'y': 2, 'z': 3, 'a': 5}
>>> d.items()
dict_items([('y', 2), ('z', 3), ('a', 5)])

6.keys

 返回一个只包含键的字典视图。值无重复

>>> d
{'y': 2, 'z': 3}
>>> d.keys()
dict_keys(['y', 'z'])

7.pop

 方法pop可用于获取与指定键相关联的值,并将该键-值对从字典中删除

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

8.popitem

随机弹出一项,并返回弹出项

>>> d
{'y': 2, 'z': 3, 'a': 5, 'b': 6}
>>> d.popitem()
('b', 6)
>>> d
{'y': 2, 'z': 3, 'a': 5}

9.setdefault

如果setdefault 参数对应的键在字典里无此键,则在字典添加这个键值。如果字典里有此键,则不更新

>>> d
{'y': 2, 'z': 3, 'a': 5}
>>> d.setdefault('b',0)
0
>>> d
{'y': 2, 'z': 3, 'a': 5, 'b': 0}
>>> d['b']=8
>>> d
{'y': 2, 'z': 3, 'a': 5, 'b': 8}
>>> d.setdefault('b',0)
8
>>> d
{'y': 2, 'z': 3, 'a': 5, 'b': 8}

10.update

使用字典项来更新字典,没有的项会新增

>>> d
{'y': 2, 'z': 3, 'a': 2}
>>> x={'a':5,'b':6}
>>> d.update(x)
>>> d
{'y': 2, 'z': 3, 'a': 5, 'b': 6}
>>> 

11.values

  返回一个只包含值的字典视图。值有可能重复

>>> d
{'y': 2, 'z': 3, 'a': 2}
>>> d.values()
dict_values([2, 3, 2])
>>> 
原文地址:https://www.cnblogs.com/buchizaodian/p/6850315.html