python字典
字典是有键值对组成的序列,字典是无序的。
一、字典的创建
1、直接创建字典
>>> dict1={'one':1,'two':2,'three':3} >>> dict1 {'one': 1, 'three': 3, 'two': 2}
2、通过dict关键词
用具有映射关系的参数创建字典时,键不可用字符串引号,否则会报错。
>>> dict1=dict(a=1,b=2,c=3) >>> dict1 {'c': 3, 'b': 2, 'a': 1}
另外一种方法是直接对键赋值,如果字典中有该键,则改变键值;如果没有改建,则创建改键。
>>> dict1 {'c': 5, 'b': 2, 'a': 1} >>> dict1['d']=6 >>> dict1 {'c': 5, 'b': 2, 'a': 1, 'd': 6}
也可以用元祖或者列表进行创建,当dict参数为元祖或列表时,必须有多于1个列表或者元祖,否则报错
>>> dict1=dict(([1,2],[3,4])) >>> dict1 {1: 2, 3: 4}
二、字典的内置方法
1、fromkeys()
fromkeys()用于创建并返回一个新的字典,它有两个参数,第一个参数为字典的键,第二个参数是传入键的值,为可选参数,默认为None
>>> dict1={'a':1} >>> dict1 {'a': 1} >>> dict1.fromkeys('a',2) {'a': 2} >>> dict1 {'a': 1} >>>
2、keys(),values()和items()
keys()用于返回字典中所有的键,values()用于返回字典中所有的值,items()用于返回字典中所有的键值对
>>> dict1 {'c': 3, 'b': 2, 'a': 1} >>> dict1.keys() dict_keys(['c', 'b', 'a']) >>> dict1.values() dict_values([3, 2, 1]) >>> dict1.items() dict_items([('c', 3), ('b', 2), ('a', 1)])
3、get()
如果用dict[key]访问字典时,如果key值不存在,python会报错。
get()方法提供了更宽松的方式去访问字典,当键不存在的时候,get()方法不会报错,只返回了一个None。
get()有两个参数,一个是key值,一个是没有找到时的默认返回值。
>>> dict1 {'c': 3, 'b': 2, 'a': 1} >>> dict1['d'] Traceback (most recent call last): File "<pyshell#100>", line 1, in <module> dict1['d'] KeyError: 'd' >>> dict1.get('d','没有') '没有'
4、setdefault()
类似get()方法,如果key存在,返回对应的value;如果key不存在,则创建key,value为none
>>> dict2 {'b': 2, 'c': 3, 'a': 1} >>> dict2.setdefault('c') 3 >>> dict2.setdefault(2) >>> dict2 {2: None, 'b': 2, 'c': 3, 'a': 1} >>>
5、copy()
复制字典,修改原字典,已复制的字典数据不变
>>> dict1={'a':1,'b':2,'c':3} >>> dict2=dict1.copy() >>> dict2 {'b': 2, 'c': 3, 'a': 1} >>> dict1['a']='一' >>> dict1 {'c': 3, 'b': 2, 'a': '一'} >>> dict2 {'b': 2, 'c': 3, 'a': 1} >>>
6、pop()和popitem()
pop()参数为key,删除字典中key键值对,返回值。
popitem()删除字典中一个键值对,返回被删除的键值对。
>>> dict1 {1: 2, 2: 3, 3: 4} >>> dict1.pop(1) 2 >>> dict1.popitem() (2, 3) >>>
7、update()
update() 方法用于更新字典中的键/值对,可以修改存在的键对应的值,也可以添加新的键/值对到字典中
>>> dict2 {2: None, 'b': 2, 'c': 3, 'a': 1} >>> dict2.update(b='bi') >>> dict2 {2: None, 'b': 'bi', 'c': 3, 'a': 1}>>> dict2 {2: None, 'b': 'bi', 'c': 3, 'a': 1} >>> dict2.update({'x':'xx','y':'yy'}) >>> dict2 {2: None, 'b': 'bi', 'x': 'xx', 'y': 'yy', 'c': 3, 'a': 1}