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():以列表返回字典中的所有值

原文地址:https://www.cnblogs.com/blueteer/p/9995404.html