python全栈-day5
作者:互联网
1、字典 dict
(1)数据类型划分:可变数据类型,不可变数据类型
不可变数据类型:元祖,bool,int,str 可哈希
可变数据类型:list,dict,set(集合) 不可哈希
(2)dict key : 必须是不可变数据类型,可哈希
value:任意数据类型
(3)dict 优点:二分查找去查询,存储大量的关系型数据
特点:无序的
2、dict的增删改查
(1)字典的增
【1】直接赋值
dic1 = {'age':18,'name':'jin','sex':'male'} dic1['high'] = 185 #没有键值对,添加 dic1['age'] = 20 #如果有键值对,则覆盖值
【2】setdefault()
dic1.setdefault('weight') #有键值对,不做任何改变,没有才添加 dic1.setdefault('weight',110) dic1.setdefault('name','二哥')
(2)字典的删
【1】pop()
print(dic1.pop('age')) #有返回值,按键去删除 print(dic1.pop('二哥',None)) #可设置返回值
【2】popitem()
dic1.popitem() #py3.5 随机删除,有返回值 返回元祖(删除的键值对) print(dic1) #py3.5 打印随机显示
【3】clear()
dic1.clear() #清空字典内容 print(dic1)
【4】del
del dic1['name'] #按键去删除 print(dic1)
(3)字典的改
【1】直接赋值
dic1['age'] = 20 #如果有键值对,则覆盖值 print(dic1)
a,b = 1,2 print(a,b) a = 1 b = 2 a,b = b,a print(a,b) a,b = [1,2],[2,3] a,b = {(1,2),(1,3),'sad'},{1} #直接赋值替换,但要与前面变量一一对应 print(a,b)
【2】update() #括号里的字典替换前面的字典,前面有键值对的替换值,没有的就增加
dic = {'age':18,'name':'jin','sex':'male'} dic2 = {'age':22,'name':'kkk','asd':2} dic.update(dic2) print(dic) print(dic2)
(4)字典的查
【1】key() #查字典中所有的键
print(dic1.keys())
【2】value() #查字典中所有的值
print(dic1.values())
【3】items() #查所有的键值对
print(dic1.items())
【4】for循环
for i in dic1: #什么都不加默认查字典里的键 print(i) for i in dic1.values(): print(i) for i in dic1.items(): #以元祖的形式打印键值对 print(i)
for i,j in dic1.items(): #两个变量循环打印,就不是以元祖的形式打印键值对了 print(i,j)
【5】直接按键查,没有就会报错
dic1 = {'age':18,'name':'jin','sex':'male'} print(dic1['age']) v = dic1['name1'] #报错 print(v)
【6】get() #按键查,有返回值None,可以自己设定
dic1 = {'age':18,'name':'jin','sex':'male'} print(dic1.get('age','meiyou')) #18 print(dic1.get('age1','meiyou')) # meiyou print(dic1.get('age1')) #None
3、字典的嵌套
(1)如果嵌套的字典中键对应的值是列表,对这个键就可以按照列表的方法操作
dic = {'name':['alex','wsir','aiai'],'py9':{'time':'1213','learn_money':19800,'addr':'CBD'},'age':21} dic['age'] = 56 dic['name'].append('yb') #l = [1,2,'wusir'] #l[2] = l[2].upper() dic['name'][1] = dic['name'][1].upper()
(2)如果嵌套的字典中键对应的值是字典,对这个键就可以按照字典的方法操作
dic = {'name':['alex','wsir','aiai'],'py9':{'time':'1213','learn_money':19800,'addr':'CBD'},'age':21} dic['py9']['female'] = 6 dic['py9'].setdefault('female',6) print(dic)
PS:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
info = input('>>>') .strip() for i in info: if i.isalpha(): info = info.replace(i,' ') # print(info) l = info.split() # print(l) li = [] for j in l: li.extend(l[l.index(j)]) print(len(li))查看输入的字符串中含有多少个数字
标签:name,python,age,day5,dic,dic1,全栈,print,字典 来源: https://www.cnblogs.com/dabj-yb/p/12489764.html