python字典的基础操作
字典是另一种可变容器模型,且可存储任意类型对象。字典中的存储是无序的。
字典的每个键值 key=>value 对用冒号 : 分割,每个键值对之间用逗号 , 分割,整个字典包括在花括号 {} ,如
d = {'key1':'val1','key2':'val2','key3':'val3'}
1、创建字典
d = {}#创建一个空字典 print(d) dict = {'a':1,'b':3,'c':4} print(dict)
2、字典取值
stu_info={"name":"张小白","sex":"女","phone":"12345678"} # print(stu_info['addr']) #key不存在时,报错 print(stu_info.get('addr')) #key不存在时,不报错,返回None
3、字典中值修改或增加(找到key,然后赋值,key存在就修改,key不存在就新增)
stu_info={"name":"张艳华","sex":"女","phone":"12345678"} stu_info['addr'] = 'beijing' print(stu_info)
4、字典设置默认值,有值得时候取值,没值得时候值是默认值。用setdefault新增一个已经存在的key,它不会改变原来key的value
stu_info.setdefault('baby',1)#设置默认值
5、字典中的删除
stu_info.pop('car') #pop中不传入key时,默认删除最后一个 stu_info.popitem() #不传key时,从字典中随机取一个删除 del stu_info['phone'] #删除指定的key stu_info.clear() #清空字典
6、update把两个字典和在一起
d1 ={'a':1,'b':2} d2 ={'c':1,'d':3} d1.update(d2) print(d1) ------输出----------- {'a': 1, 'b': 2, 'c': 1, 'd': 3}
7、获取字典中所有的key和value
print(d1.keys()) print(d1.values())
8、字典的循环,可直接按照key循环
for i in d1: s =('%s==>%s'%(i,d1[i])) print(s)
9、判断字典的key是否存在
print('name' in d1) #判断name这个key是否存在 print('name' in d1.keys())#这个也可以判断是否存在,只是这个效率不如直接stu_info
10、将字典中的值转为一个二维数组
for i in d1: #这种方法比下面的方法效率高,都可转为二维数组 s =('%s,%s'%(i,d1[i])) print(s) ################## for k,v in d1.items(): print('%s,%s'%(k,v))
11、字典的长度
d1 ={'a':1,'b':2} d2 ={'c':1,'d':3} print(len(d1))
12、打印字典中的所有key和value
d1 ={'a':1,'b':2} print(str(d1))
Python字典包含了以下内置方法:
1、radiansdict.clear():删除字典内所有元素
2、radiansdict.copy():返回一个字典的浅复制
3、radiansdict.fromkeys():创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值
4、radiansdict.get(key, default=None):返回指定键的值,如果值不在字典中返回default值
5、radiansdict.has_key(key):如果键在字典dict里返回true,否则返回false
6、radiansdict.items():以列表返回可遍历的(键, 值) 元组数组
7、radiansdict.keys():以列表返回一个字典所有的键
8、radiansdict.setdefault(key, default=None):和get()类似, 但如果键不已经存在于字典中,将会添加键并将值设为default
9、radiansdict.update(dict2):把字典dict2的键/值对更新到dict里
10、radiansdict.values():以列表返回字典中的所有值