字典操作
一、字典是无序的,字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中 ,且key必须是唯一的,格式如下所示
字典:
dict = {'a':1,'b':'123'}
字典嵌套字典:
dict = {'a':{'abc':123},'b':123}
字典嵌套列表:
dict = {'a':[1,2,3,4],'b':123}
二、遍历字典
1、for key,value in dict.items():
print(key,value)
例子:
dict = {'a':1,'b':'123'}
for key,value in dict.items():
print(key,value)
结果:
a 1
b 123
2、for key in dict: #效率高,推荐使用
print(key,dict[key])
例子:dict = {'a':1,'b':'123'}
for key in dict:
print(key,dict[key])
结果:
a 1
b 123
三、取元素
1、根据key值取出value值,如果key值不存在,会报错
用法:dict[key] = value
如:dict = {'a':1,'b':'123'}
print(dict['a']) -> 1
2、get:如果key值不存在,不会报错
用法:get(key)
如:dict = {'a':1,'b':'123'}
print(dict.get('b')) -> 123
2、删除
dict = {'a':1,'b':'123'}
1、clear
用法:D.clear() -> None. Remove all items from D.
如:
dict.clear()
print(dict) -> {}
2、del
如:del dict['a']
print(dict) ->{'b':'123'}
3、pop
如:dict.pop('a')
print(dict) ->{'b':'123'}
4、popitem:D.popitem() -> (k, v),随机删除,返回key和value
3、添加
根据key值添加,如果key存在,修改value值,如果key不存在,新建一个key:value的对应关系
如dict = {'a':1,'b':'123'}
dict['a'] = '测试'
dict['c'] = '测试1'
print(dict) ->{'c': '测试1', 'a': '测试', 'b': '123'}
4、其它
1、values
用法:D.values() -> an object providing a view on D's values
如:
dict = {'a':1,'b':'123'}
print(dict.values()) ->dict_values([1, '123'])
同理还有D.keys()
2、setdefault
用法:D.setdefault(key,value),如果key值存在,返回value的值,key值不存在,则创建D[key] = value,并返回value的值
如key存在:
dict = {'a':1,'b':'123'}
print(dict.setdefault('a','测试')) ->1
print(dict) ->{'a': 1, 'b': '123'}
key不存在:
dict = {'a':1,'b':'123'}
print(dict.setdefault('c','测试')) ->测试
print(dict) ->{'a': 1, 'c': '测试', 'b': '123'}
根据(key值存在,不修改value的值)这个特性,也可以用来初始化字典:
代码示例:
d = {}
d.setdefault('a',[]).append(1)
d.setdefault('b',[]).append(2)
d.setdefault('a').append(3) #当key存在,添加元素时可以不用加[]
print(d) ->{'b': [2], 'a': [1, 3]}
3、update:更新字典,
用法:D.update(E) -> None.更新D字典,如果E中的key在D中存在,则更新value, D[k] = E[k]
E中的key在D中不存在,则新建,for k in E: D[k] = E[k]
如:
dict = {'a':1,'b':'123'}
dict1 = {'a':'测试','c':'abc'}
dict.update(dict1)
print(dict) ->{'c': 'abc', 'a': '测试', 'b': '123'}
4、fromkeys:初始化一个新列表
c = dict.fromkeys([6,7,8],['a','b'])
print(c) ->{8: ['a', 'b'], 6: ['a', 'b'], 7: ['a', 'b']}
一些dict的高级用法,详见分类python高级特性字典的高级特性