python学习第四天

时间:2022-07-07 20:55:43
 

  

今日内容
一、元祖类型及元祖的内置方法
二、字典类型及字典类型的内置方法
三、集合及内置的集合类型内置的方法


一 、元祖.
元祖类型与列表类型相同,都是可以存多个值,但是不相同的是元祖本身是不能被修改的

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)