一、什么是元组:元组就是一个不可变的列表
1:用途:
存多个值,但是只有读的需求,没有改的需求。
强调:在元素个数相同的情况下, 使用元组更加节省空间。
2:定义方式
t=(1,2,3,4,5,6) #t=tuple((1,2,3,4))
3:常用操作+内置的方法
优先掌握的操作
1:按照索引取值(正向取+反向取, 只能取)
t=(1,2,3,4,5,6,7,8,9) print(t[0:8:3]) # 打印结果 1 4 7
2:切片 (顾头不顾尾,步长)
t=(1,2,3,4,5,6) print(t[1:4]) #打印结果 (2, 3, 4)
3:长度 len
t=(1,2,3,4,5,6) print(len(t)) #打印结果 6
4 成员运算in和not in
t=(1,2,3,4,5,6) print (2 in t) #打印结果 True
5 循环
t=(1,2,3,4,5,6) i=0 while i< len(t): print(t[i] ,end=" ") #end=""表示不换行 i+=1 #打印结果 1 2 3 4 5 6 t=(1,2,3,4,5,6) for item in t: print(item,end=‘ ‘) #打印结果 1 2 3 4 5 6
6 index 固定元素的索引
t=(1,2,3,4,5,6) print(t.index(2)) #打印结果 1 表示第1位
7 count 某个元素的个数
t=(1,2,3,4,5,6,3,3,3,3,3,3,2) print(t.count(3)) #打印结果为7 表示这个元祖里有7个3
该类型总结
1 存多个值 ,2 有序 ,3 不可变
二,字典
1: 用途 :以key:value 的形式存多个值
优点:存取都快,每个值都有一个 对应的key
2,定义方式:{}内以逗号分隔多个元素,格式为 key:value
其中key必须为不可变类型,value可以是任意类型
dic={‘x‘:1,‘y‘:1,‘x‘:1111}
print(dic)    #打印结果     {‘x‘: 1111, ‘y‘: 1}
3:常用操作+内置的方法
3.1 按key存取值,可存可取
dic={‘name‘:‘egon‘}
dic[‘age‘]=10
print(dic)   #  打印结果 {‘name‘: ‘egon‘, ‘age‘: 10}  将‘age‘:10  这个元素放入字典里
dic={‘name‘:‘egon‘}
dic[‘age‘]=10
dic[‘name‘]=‘EGON‘
print(dic)     #打印结果    {‘name‘: ‘EGON‘, ‘age‘: 10}    ,将‘age‘:10 存入字典里,  将‘name‘:egon 这个元素更改为‘name‘:EGON 元素放入字典里, 
dic={‘name‘:‘egon‘}
dic[‘age‘]=10
dic[‘name‘]=dic[‘name‘].upper()
print(dic)    #打印结果 {‘name‘: ‘EGON‘, ‘age‘: 10}    将‘age‘: 10 这个元素放入字典里,并将 name的vulae 值大写
 3.2 长度 len 判断字典里有几个元素,key的个数则代表字典里元素的个数
dic={‘name‘:‘egon‘,‘age‘:18}
print(len(dic))  #打印结果为2,表示里面有2个元素
3.3 成员运算 in 和not in 。 判断某个元素是否在字典内,
dic={‘name‘:‘egon‘,‘age‘:18}
# print(‘name‘ in dic)    #打印结果为True  表示name  这个key和对应的值在这个字典里
print(‘sex‘in dic)       #打印结果为False  表示sex 这个key和对应的值不在这个字典里
3.4   删除  dic.pop(‘ ‘,None)
dic={‘name‘:‘egon‘,‘age‘:18}
x=dic.pop(‘name‘)
print(dic)     #打印结果为 {‘age‘: 18}是只江name这个key与其所对应的值 删掉
dic={‘name‘:‘egon‘,‘age‘:18}
res=dic.pop(‘sex‘,None)
print(res)      #打印结果为None  若是删除字典里没有的key与其所对应的值时,一般都在删除那个key的后面+ ‘ ,None‘,
                若是没有这个key的话 反馈的 结果为None,若是有的话则直接删除。  不加None的话 删除没有的Key的情况下,
                则会报错,所以一般情况为了防止报错, 在我们不确定有没有这个keyde 情况下,都要在后面加None
3.5 键 keys 表示,值 values表示 键值对items
dic={‘name‘:‘egon‘,‘age‘:18}
print(dic.keys())   #打印结果  dict_keys([‘name‘, ‘age‘])
print(dic.values())   #打印结果   dict_values([‘egon‘, 18])
print(dic.items())    #打印结果    dict_items([(‘name‘, ‘egon‘), (‘age‘, 18)])
3.7 循环 for 用key 来循环
dic={‘name‘:‘egon‘,‘age‘:18}
for x in dic.keys():    
    print(x)                # 打印结果  name   age    打印字典里key的所有集合
print(list(dic.keys())[0])  #打印字典里key的第一个值  name
3.6 get 取值 get() 括号里加key,把字典里的的值取出, 若取得key 是字典里没有的则不会报错, 直接给出None的提示。
dic={‘name‘:‘egon‘,‘age‘:18}
print(dic.get(‘name‘))   #打印结果  egon
print(dic.get(‘sex‘))    #d打印结果  None
3.7 .popitem() 默认取最后一个item
dic={‘name‘:‘egon‘,‘age‘:18}
print(dic.popitem())  #打印结果 (‘age‘, 18)
3.8 update() 更新。更新指的是 新字典中有而老字典中没有则添加,新有而老有, 则覆盖
dic={‘name‘:‘egon‘,‘age‘:18}
dic.update({‘x‘:1,‘age‘:19})
print(dic)   #打印结果   {‘name‘: ‘egon‘, ‘age‘: 19, ‘x‘: 1}
3.9 setdefault的用处 修改的意思
字典中有key, 则不修改, 返回原key对应的原值
dic={‘name‘:‘egon‘,‘age‘:18}
res=dic.setdefault(‘name‘,‘EGON‘)
print(‘返回值‘,res)     #打印结果 返回值 egon   原字典中有name, 所以不修改
print(dic)            #打印结果 {‘name‘: ‘egon‘, ‘age‘: 18}
dic={‘age‘:18}
res=dic.setdefault(‘name‘,‘EGON‘)
print(dic    #打印结果   {‘age‘: 18, ‘name‘: ‘EGON‘} 原字典里没有name以及对应的值, 所以将name加进字典, 
3.10  fromkeys  快速造成一个新的字典
dic={‘name‘: ‘egon‘, ‘age‘: 18, ‘a‘: 1, ‘z‘: 3, ‘alex‘: 20}
print({}.fromkeys(dic.keys(),‘NONE‘))   #打印结果{‘name‘: ‘NONE‘, ‘age‘: ‘NONE‘, ‘a‘: ‘NONE‘, ‘z‘: ‘NONE‘, ‘alex‘: ‘NONE‘}
