今日内容

列表之内置方法(list)

列表在调用内置方法之后不是产生新的值,而是修改它的本身
1.统计列表里的数据个数
	l1 = ['jason','lisa','kevin','tony','joker']
	print(len(l1)) # 5
2.增
2.1尾部增加一个元素 关键字:.append() 
	括号内无论放什么数据类型,都会当成一个整体增加
	l1 = ['jason','lisa','kevin','tony','joker']
	l1.append([1,2,3])
	print(l1) # ['jason',lisa,'kevin','tony','joker',[1,2,3]]
2.2任何位置追加一个数据 关键字:.insert()
	l1 = ['jason','lisa','kevin','tony','joker']
	l1.insert(1,'插队')
	print(li) # l1 = ['jason','插队','lisa','kevin','tony','joker']
	同上括号内无论放什么数据类型,都会当成一个整体增加
2.3扩展列表 
方式一:for 循环
	l1 = [1,2,3]
	l2 = [11,22,33,44]
	for i in l1:
	l2.append(i)
	print(l2) # [11,22,33,44,1,2,3]
方式二: 使用 + 号
	l1 = [1,2,3]
	l2 = [11,22,33,44]
	print(l2+l1) # [11,22,33,44,1,2,3]
方式三:使用关键字.extend() 括号内必须是支持 for的数据类型
	l1 = [1,2,3]
	l2 = [11,22,33,44]
	l1.extend(l2)
	print(l1) # [1,2,3,11,22,33,44]
推荐使用方式三 底层原理就是 for循环加 .append方法 
3.查询数据与修改数据
3.1查询功能 通过索引即可
	l1 = ['jason','joker','lisa','kevin''tony]
	print(l1[0])  # jason
	print(l1[0:2])  # ['jason','joker']
3.2修改数据 索引修改想要修改的数据
	l1 = ['jason','joker','lisa','kevin','tony']
	l1[1] = 'jasonNb'
	print(l1) # ['jason','jasonNb','lisa','kevin','tony']
4.删除数据
4.1通用删除策略
	关键字:del 索引删除
	l1 = ['jason','joker','lisa','kevin''tony]
	del l1[1]
	print(l1) # ['jason','lisa','kevin','tony']
4.2指名道姓的删
	关键字:.remove() 括号内输入明确要删除的数据值
	l1 = ['jason','joker','lisa','kevin''tony]
	l1.remove('jason')
	print(l1) # ['joker','lisa','kevin','tony']
4.3先取出数据值 然后再删 也可以通过索引的方式取出数据值 在删除
	关键字:.pop()
	l1 = ['jason','joker','lisa','kevin''tony]
	res = l1.pop() # 空格默认取出尾部在删
	print(res) # res = tony
	print(l1) # ['jason','joker','lisa','kevin']
 同时也可以通过索引的方式取出数据值 在删除
	l1 = ['jason','joker','lisa','kevin''tony]
	res = l1.pop(0)
	print(res) # jason
	print(l1) # ['joker','lisa','kevin''tony']
5.查看数据值对于的索引值
	关键字:.index()
	l1 = ['jason','joker','lisa','kevin''tony]
	l1.index(2)
	print(l1) # lisa
6.统计某个数据值出现的次数
	关键字.count
	l1 = ['jason','jason','jason','tony','lisa']
	l1.count('jason')
	print(l1.count('jason')) # 3
7.排序
	升序 关键字:.sort  默认从小到大
	降序 关键字:.sort(reverse = True)  
8.翻转
	关键字:.reverse 前后跌倒
9.比较运算
	l1 = [66,22]
	l2 = [11,22,33,44,55,66]
	print(l1 > l2) # Ture 是按照位置来比较 
10.for循环 
按照值的一个整体  # 'joker'

可变与不可变的类型

1.可变的类型:list
	值改变(内置方法) 内存地址可以不变
		l1 = [11,22,33,44]
		print(id(l1)) # 1976844297928
		l1.append(55)
		print(id(l1)) # 1976844297928
	列表内置方法是修改自身 所以是可变类型
2.不可变的类型:str int float
	值可变(内置方法) 内存地址肯定变
		s1 = '@jason@'
		print(id(s1)) # 2089301545960
		res = s1.split('@')
		print(id(res)) # 2089304205000
	字符串的内置方法是产出一个新的数据 不可变类型

元组的内置方法(tuple)

支持 for循环的数据类型都可以转换成元组
	t1 = ()
	print(type(t1)) # tuple
	t2 = (11)
	print(type(t2)) # int
	t3 = (11.1)
	print(type(t3)) # float
	t4 = ('jason')
	print(type(t4)) # str
	t5 = ({'name':'jason'})
	print(type(t5)) # dict
元组在空括号是转换元组 当元组内是一个数据值时,数据值是什么数据类型就会成什么转成什么数据类型  当元组是一个数据值时在后面加上逗号
1.索引取值: 只能取不能改 否则会报错
	t1 =(11,22,33,44,55,)
	print(t1[2]) # 22
2.统计元组内的数据个数:
	t1 = (11,22,33,44,55)
	print(len(t1)) # 5
3.查与改:
	t1 = (11,22,33,44,55,)
	print(t1[1]) # 22 
元组支持查询不支持更改
4.需要注意的笔试题:
"""元组的索引不能改变绑定地址"""
	t1 = (11,22,33,44,[55,66])
	t1[-1].append(77)
	print(t1) # (11,22,33,44,[55,66,77])
5.切片
	t1 = (11,22,33,44,55,)
	t1[0:5:1] # 11,22,33,44,55

字典的内置方法(dict)

类型转换
	print(dict([('name','joker'),('pwd',11)])) # {'name': 'joker', 'pwd': 11}
	print(dict(name='joker',pwd=11)) #{'name': 'joker', 'pwd': 11}
	fromkeys会从元组中取出每个值当做key,然后与None组成key:value放到字典中
	{}.fromkeys(('name','age','sex'),None)  
	{'age': None, 'sex': None, 'name': None}
字典很少涉及到类型转换 都是直接定义使用的
1字典内的K:V键值对是无序的 无法索引取值
2.取值操作
	info = {'username': 'lisa','pwd': 11,'hobby': ['read', 'run']}
	print(info['username']) # lisa 不推荐使用 键不存在的话会直接报错
	关键字:.get
	info = {'username': 'lisa','pwd': 11,'hobby': ['read', 'run']}
	print(info.get('username')) # lisa
	print(info.get('xxx')) # None 键不存在返回得值 默认返回None
	print(info.gnt('username','键不存在返回不存在')) #lisa
	print(info.gnt('某某','键不存在返回不存在')) # 键不存在返回不存在
3.统计字典中的键值对个数
	print(len(info))
4.修改数据
	info = {'username': 'lisa','pwd': 11,'hobby': ['read', 'run']}
	info['username'] ='jasonNb' # 通过字典里的K来修改
	print(info) # info = {'username': 'jasonNb','pwd': 11,'hobby': ['read', 'run']}  键存在则是修改
5.新增数据
	info = {'username': 'lisa','pwd': 11,'hobby': ['read', 'run']}
	info['salary'] = 6
	print(info) # {'username': 'lisa','pwd': 11,'hobby': ['read', 'run'],'salary:6'} 键不存在则是增加
6.删除数据
方式一:关键字del  通过索引K来删除
	info = {'username': 'lisa','pwd': 11,'hobby': ['read', 'run']}
	del info['username']
	print(info) # ['pwd': 11,'hobby': ['read', 'run']}
方式二:关键字.pop
info = {'username': 'lisa','pwd': 11,'hobby': ['read', 'run']}
	res = info.pop('usermane')
	print(info) # ['pwd': 11,'hobby': ['read', 'run']}
方式三:关键字.popitem
	info.popitem # 随机删除
7.快速获取键 值 键值对数据
	7.1关键字:.keys()
	info = {'username': 'lisa','pwd': 11,'hobby': ['read', 'run']}
	print(info.keys()) # 'username','pwd',hobby 获取字典所有的K值
	7.2关键字:.values()
	info = {'username': 'lisa','pwd': 11,'hobby': ['read', 'run']}
	print(info.values) # 'lisa',11,'read','run' 获取字典所有的V值
	7.3关键字:.items()
	info = {'username': 'lisa','pwd': 11,'hobby': ['read', 'run']}
	print(info.items) # 获取字典KV键值对数据 组织成列表套元组dict_items([('username', 'lisa'), ('pwd', 11), ('hobby', ['read', 'run'])])
8.修改字典数据 键存在则是修改 键不存在则是新增
	关键字.update
9.快速构造字典 给的值默认 认情况下所有的键都用一个
	关键字:.fromkeys
	res = dict.fromkeys([1, 2, 3], None)
	print(res) # {1: None, 2: None, 3: None}
10.键存在获取则获取对应的数据值 键不存在则设置并返回设置的新值
	关键字.setdefault()
	info = {'username': 'lisa','pwd': 11,'hobby': ['read', 'run']}
	res1 = info.setdefault('username','lisaNb')
	print(res,info) # lisa {'username': 'jason', 'pwd': 123, 'hobby': ['read', 'run']}
	res2 = info.setdefault('moumou','lisaNb')
	print(res,info) # lisaNb {'username': 'jason', 'pwd': 123, 'hobby': ['read', 'run'], 'moumou': 'lisaNb'}

集合内置方法(set)

类型转换
	支持for徐悲鸿的 并且数据必须是不可变类型
1.定义空集合需要使用关键字才可以 set()
2.集合内数据必须是不可变类型(整型 浮点型 字符串 元组 布尔值)
'''去重'''集合自带去除重复功能
3.s1 = {1,2,1,5,2,1,3,5,4,9,6,2,2}
	print(s1) # {1, 2, 3, 4, 5, 6, 9}
'''关系运算'''
模拟两个人的好友集合
	f1 = {'jason,tony','lisa','joker'}
	f2 = {'tony','jason','lili','kevin'}
1.求f1和f2的共同好友  &
	print(f1 & f2) # {'jason', 'tony'}
2.求f1/f2独有好友   
	print(f1 - f2) # {'lisa', 'joker'}
	print(f2 - f1) # {'kevin', 'lili'}
3.求f1和f2所有的好友
	print(f1 | f2) # {'lisa', 'joker', 'kevin', 'tony', 'lili', 'jason'}
4.求f1和f2各自独有的好友(排除共同好友)
	print(f1 ^ f2) #{'lili', 'joker', 'kevin', 'lisa'}
5.父集 子集
	s1 = {1,2,4,7,8,9}
	s2 = {1,2,4}
	s3 = {1,2,3}
	print(s1 > s2) # True
	print(s1 > s3) # False
s1是否是s2的父集,s1是否是s3的父集,其实就是在判断是不是包含在对方里
 posted on 2022-06-28 00:45  Joker_Ly  阅读(106)  评论(0)    收藏  举报