python全栈开发-Day5 元组、字典详解编程语言

一、前言

  首先,不管学习什么数据类型,我们都带着以下几个问题展开学习:

  #1:基本使用

    1 、用途

    2 、定义方式

    3、常用操作+内置的方法

  #2:该类型总结

    1 、存一个值or存多个值, 只能存一个值 可以存多个值,值都可以是什么类型

    2 、有序or无序

    3 、可变or不可变 !!!可变:值变,id不变。可变==不可hash !!!不可变:值变,id就变。不可变==可hash

二、元组  

#作用:存多个值,对比列表来说,元组不可变(是可以当做字典的key的),

#主要是用来读 定义:与列表类型比,只不过[]换成() age=(11,22,33,44,55)本质age=tuple((11,22,33,44,55))

#优先掌握的操作:

  #1、按索引取值(正向取+反向取):只能取          #跟字符串,列表的取值一样,就不详细说了

 

  #2、切片(顾头不顾尾,步长) 

1 t=(1,2,3,4,5,6) 
2 print(t[1:4])   
3  
4 #结果为    (2, 3, 4)

  #3、长度          

1  t=(1,2,3,4,5,6) 
2  print(len(t)) 
3   
4  #结果为  6

  #4、成员运算in和not in         

1  t=(1,2,3,4,5,6) 
2  print((1) in t)    
3   
4  #结果为 Ture   #not in 就为Flase

   #5、循环

 1 t=(1,2,3,4,5,6) 
 2  
 3 #不依靠索引循环 
 4 for i in t: 
 5     print(i) 
 6  
 7 #依靠索引的两种循环 
 8 #for循环 
 9 for i in range(len(t)) 
10     print(i) 
11  
12 #while 循环 
13 n=0 
14 while Ture: 
15     print(t[i]) 
16     n+=1       
17     

三、字典

#作用:存多个值,以key-value存取,取值速度快,每一个值都有对应的key

#定义:

    {}内以逗号分割多个元素

    key必须是不可变类型,value可以是任意类型

    info={‘name’:’egon’,’age’:18,’sex’:’male’}

#本质info=dict({….}) 或 info=dict(name=’egon’,age=18,sex=’male’) 或 info=dict([[‘name’,’egon’],(‘age’,18)]) 或 {}.fromkeys((‘name’,’age’,’sex’),None)

#优先掌握的操作:

  #1、按key存取值:可存可取

1 dic={'name':'duoduo'} 
2 dic['age']=10 
3 print(dic)       #值为{'name':'duoduo','age':10}   可存 
4  
5 dic['name']='qian' 
6 print(dic)       #值为{'name':'qian','age':10}     可改

 

  #2、长度len      

1 dic={'name':'duoduo','age':18} 
2 print(len(dic)) 
3  
4 #结果为  2

 

  #3、成员运算in和not in   (判断key存在)

 

1 dic={'name':'egon','age':18} 
2 print('name' in dic) 
3  
4 # 结果为   Ture

  #4、删除

 1 dic={'name':'duoduo','age':18} 
 2 res=dic.pop('name')     #和列表不同的地方在后面加的参数 
 3 print(res)     #值为'duoduo'   
 4 print(dic)     #值为{'age':18} 
 5  
 6 # del dic['name'] 
 7 # print(dic)             万能的删除 
 8  
 9  
10 #res=dic.pop('qian',None)    #这里的删除对象不再原来的字典 
11 #print(res)               #在后面添加None 就不会报错,返回值None

  #5、键keys(),值values(),键值对items(),循环

 

#键keys() 
dic={'name':'duoduo','age':18} 
print(dic.keys())      
#值为dict_keys(['name', 'age']) 
 
for key in dic.keys():     #字典.keys()这个方法省略不写直接dic也可以 
    print(key) 
 
#结果为 name age 
 
#值values() 
dic={'name':'duoduo','age':18} 
print(dic.values())     #值为dict_values(['duoduo', 18]) 
 
for values in dic.values(): 
    print(values) 
 
#结果为 duoduo  18 
 
 
#键值对items 
dic={'name':'duoduo','age':18} 
print(dic.items())       
#值为dict_items([('name', 'egon'), ('age', 18)]) 
 
for k,v in dic.items():   #k,v=('name', 'duoduo') 
    print(k,v)

  #掌握的知识:

 1 dic={'name':'duoduo','age':18} 
 2 print(dic.get('namexxxx'))     #没发现,输出None 
 3 print(dic['namexxxxxxxxxx'])   
 4 #  这个会报错                 #小结:寻找到返回值,寻找不到返回None 
 5  
 6 print(dic.popitem())      #弹出末端的一组数据 
 7 print(dic)       #值为  {'name':'duoduo'} 
 8  
 9  
10 dic.update({'x':1,'age':19}) 
11 #对与老字典来说,更新指的是,新字典中有而老字典中没有则添加,新有而老有,则覆盖 
12 print(dic)        #值为 {'name':'duoduo','age':19} 
13  
14  
15 dic.fromkeys()    #创建新字典的种便捷方法 
16 good_info={ 
17     'name':None, 
18     'price':None, 
19     'count':None 
20 } 
21 # 'mac'  20000  10 
22 good_info['name']='mac' 
23 print({}.fromkeys(['name','age','sex'],None)) 
24 #值为{'name':None,'age':None,'sex':None} 
25  
26  
27 #setdefaul的用处: 
28 # 1、字典有中有key,则不修改,返回原key对应的原值 
29 dic={'name':'duoduo','age':18} 
30 res=dic.setdefault('name','qian') 
31 print('返回值',res)       #返回值 duoduo 
32 print(dic)        #{'name':'duoduo','age':18} 
33  
34 # 2、没有对应的key,则添加,返回添加的key对应的value 
35 dic={'age':18} 
36 res=dic.setdefault('name','qian') 
37 print('返回值',res)       #返回值 qian 
38 print(dic)         #{'age': 18, 'name': 'qian'}

  #总结

  #1、存多个值
  #2、无序
  #3、可变

 

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/12231.html

(0)
上一篇 2021年7月19日
下一篇 2021年7月19日

相关推荐

发表回复

登录后才能评论