今日内容
一、元祖类型及元祖的内置方法
二、字典类型及字典类型的内置方法
三、集合及内置的集合类型内置的方法
一 、元祖.
元祖类型与列表类型相同,都是可以存多个值,但是不相同的是元祖本身是不能被修改的
A、元祖的基本使用 tuple
1、用途:记录多个值,当多个值没有改变的需求是,使用元祖类型更合适。
2、定义的方式:元祖是用 ()小括号内用逗号隔开任意元素类型的值
元祖是不能被修改的
示例:
tuplevar =(1,2,3,4,5,6,) # tuplevar = tuple((1,2,3,4,5,6,)) print(tuplevar)
3、常用操作和内置的方法
a、优先掌握的操作
1、按索引取值(正向取+反向取):只能取
2、切片(顾头不顾尾,步长)
3、长度
4、成员运算in和not in
5、循环
1、按索引取值(正向取+反向取):只能取
t = ('yul', 'mx', 123, ['a','b']) print(t[0]) # 索引元祖中元素的值 print(t[2]) # 索引元祖中元素的值 #是不可改变的 # t[2] = 'aaaa' t[-1][0] = '1' # 可以改变的是里面的可变元素 print(t)
2、切片(顾头不顾尾,步长)
t = ('yul', 'mx', 123, ['a','b']) print(t[0:2]) print(t)
3、长度 len
t = ('yul', 'mx', 123, ['a','b']) print(len(t))
4、成员运算 in 和 not in 还是判断的语句
xin = ('asd','asdz','zxc',123) print('zxc' in xin )
5、循环
xin = ('asd','asdz','zxc',123) for i in xin: print(i)
B、需要掌握的操作
1、count 计数
2、index 索引
1、count 计数
xin = ('asd','asdz','zxc','zxc','zxc',123,) print(xin.count('zxc'))
2、index 索引
示例1: t = (1, 2, 3, 4, 5,) print(t.index('1',1)) 示例2: t=('a','b','c','a') print(t.count('a')) print(t.index('a',1,10)) print(t.index('xxx',1,10)) # 没有的值会报错
二、字典类型及字典类型的内置方法
字典 doct
字典的作用:能存储多组key.value键值对;key 是对value的描述性信息,所以key通常情况下是字符串,value可以是任何数据类型
key是不可变的信息
字典类型我们只能看到key 可以根据key来取value的值
字典类型中key的内容是不可以重复的
无序和可变
定义:
d = {2:'sb', 'sb':'dsb',} # d = dic({2:'sb', 'sb':'dsb',}) print(d,type(d),id(d)) print(d['sb'])
优先掌握的操作:
1、按key存取值:可存可取
d1 = {'name':'yl','pwd':'123'} print(d1['name']) # 根据key取值 d1['name'] = '名字' # 根据key替换value的值 print(d1) d1['age'] = 18 # 当赋值语句的key不存在的情况下,会自动新增一个键值对 print(d1)
2、长度 len
d1 = {'name':'yl','pwd':'123'} print(len(d1)) # 统计key的个数
3、成员运算in和not in 对于字典来说只能判断key值
d1 = {'name':'yl','pwd':'123'} print('123'in d1) # 是不能判断valeu的值的 print('name'in d1)
4、删除 del pop clear
d1 = {'name':'yl','pwd':'123'} del d1['name'] print(d1)
2、pop示例:弹出仅仅是value 会返回删除的值,如果要弹出的key没有的情况下报错
d1 = {'name':'yl','pwd':'123'} res = d1.pop('name') print(res)
3、clear是清除
d1 = {'name':'yl','pwd':'123'} d1.clear() print(d1)
#5、键keys() ,值values(),键值对items()
dic={'name':'egon','age':18,} # print(dic.keys()) for k in dic: print(dic) print(dic.values()) print(dic.items()) #
6.get()根据key获取value(重点)
dic={'name':'egon','age':18,} print(dic['name']) print(dic['pwd']) # 当没有key值时报错 print(dic.get('name','你需要的key有')) print(dic.get('apd','你需要的key有')) # get可以传第二个参数。当你的key不存在的情况下,返回第二个你写好的参数信息
# 需要掌握的操作
# fromkeys() Python 字典 fromkeys() 函数用于创建一个新字典,以序列 l 中元素做字典的键,value 为字典所有键对应的初始值。 l=['name','age','sex'] # dic={'name':None,'age':None,'sex':None} dic={} # for k in l: # dic[k]=None # print(dic) dic=dic.fromkeys(l,None) print(dic)
update 更新
old_dic = {'name':'yul','age':18} new_dic = {'name':'YUL','xb':'N'} old_dic.update(new_dic) print(old_dic)
setdefault:有则不动/返回原值,无则添加/返回新值
Python 字典 setdefault() 函数和 get()方法 类似, 如果键不存在于字典中,将会添加键并将值设为默认值。
dic={'name':'egon','age':18} res=dic.setdefault('name','EGON') # 字典中已经存在key则不修改,返回已经存在的key对应的value print(dic) print(res) res=dic.setdefault('sex','male') # 字典不存在key则添加"sex":"male",返回新的value print(dic) print(res)
三、集合及内置的集合类型内置的方法
集合类型两大应用场景:关系运算和去重
针对群体之间做比较,不涉及单个元素
注意集合的目的是将不同的值存放到一起,不同的集合间用来做关系运算,无需纠结于集合中单个值
把两个列表上里面的重复元素拉出来
pythons = ['jason', 'nick', 'tank', 'egon', 'kevin', 'owen', 'alex'] linux = ['frank', 'jerry', 'tank', 'egon', 'alex'] for name in pythons: if name in linux: print(name) '''
定义
集合:可以包含多个元素,用逗号分割,
集合的元素遵循三个原则:
1:每个元素必须是不可变类型
s = {1,2,3,4,5,6} # <class 'set'> # s = set() print(type(s)) s1 = set() print(type(s1)) # 注意在定义空集合的只能用关键字set x = {} # <class 'dict'> 如果你仅仅只写了一个大括号 那么python默认将它当做字典类型 print(type(x))
自动将重复的元素 去除
s = {1,2,2,2,2,2,2,2,2,2,3,4,4,4,4,4,5} print(s)
3:无序 以下操作会报错的
s = {1, 2, 3, 4, 5, 6} print(s[1])
优先掌握的操作:
1、长度len s = {1,2,3,4} print(len(s))
2、成员运算in和not in
s = {1,2,3,4} print(1 in s)
3、|合集
4、&交集
5、-差集
6、^对称差集
pythons = {'jason', 'nick', 'tank', 'egon', 'kevin', 'owen', 'alex'} linux = {'frank', 'jerry', 'tank', 'egon', 'alex'} # 既报名python也报名linux的学生姓名 print(pythons & linux) # 交集 # 只报名python的学生姓名 print(pythons - linux) # 只报名linux的学生姓名 print(linux - pythons) # 没有同时报名两门课程的学生姓名 print(pythons ^ linux) # 对称差集 # 取出所有报了名的学生姓名 print(pythons | linux)