列表(list)内置方法补充、字典(dict)内置方法、元组(tuple)内置方法、集合(set)内置方法
一、列表(list)内置方法补充
# reverse()颠倒列表内元素顺序
# sort()给列表内所有元素排序,参数reverse用来指定是否颠到排序,默认为False
# 列表比较大小
# l1 = [666,777]
# l2 = [111, 222, 333, 444 ,555, 666]
# print(l1 > l2) # True 列表的比较是比较索引对应位置的元素值,只要有一个比较出来,都不在往下比较
二、字典(dict)内置方法
# 1.定义:在{}内用逗号分隔开多元素,每一个元素都是key:value的形式,其中value可以是任意类型,而key则必须是不可变类型,详见第八小节,通常key应该是str类型,因为str类型会对value有描述性的功能
info={'name':'tony','age':18,'sex':'male'} #本质info=dict({....})
# 也可以这么定义字典
info=dict(name='tony',age=18,sex='male') # info={'age': 18, 'sex': 'male', 'name': 'tony'}
# 2.类型转换
# 转换1:
>>> info=dict([['name','tony'],('age',18)])
>>> info
{'age': 18, 'name': 'tony'}
# 转换2:fromkeys会从元组中取出每个值当做key,然后与None组成key:value放到字典中
>>> {}.fromkeys(('name','age','sex'),None)
{'age': None, 'sex': None, 'name': None}
# 3.按k取值(不推荐使用)
user_dict = {
'username': 'jason',
'password': 123,
'hobby': ['read', 'music', 'run']
}
print(user_dict['username']) # jason
print(user_dict['phone']) # k不存在会直接报错
# 4..按内置方法get取值(推荐使用)
print(user_dict.get('username')) # jason
print(user_dict.get('age')) # None
# 5.修改数据值
print(id(user_dict))
user_dict['username'] = 'tony' # 键存在则修改对应的值
print(id(user_dict))
print(user_dict)
# 6.新增键值对
user_dict['age'] = 18 # 键不存在则新增键值对
print(user_dict)
# 7.删除数据
del user_dict['username']
print(user_dict)
res = user_dict.pop('password')
print(user_dict)
print(res) # 123
# 8.统计字典中键值对的个数
print(len(user_dict))
# 9.字典三剑客
print(user_dict.keys) # 一次性获取字典所有的键
dict_keys(['username', 'password', 'hobby'])
print(user_dict.values()) # 一次性获取字典所有的值
dict_values(['jason', 123, ['read', 'music', 'run']])
print(user_dict.items()) # 一次性获取字典的键值对数据
dict_items([('username', 'jason'), ('hobby', ['read', 'music', 'run'])])
for i in user_dict.items():
k,v = i
print(k,v)
# 补充说明
print(dict.fromkeys(['name', 'pwd', 'hobby'], 123)) # 快速生成值相同的字典
res = (dict.fromkeys(['name', 'pwd', 'hobby'], 123)) # 快速生成值相同的字典
res = user_dict.setdefault('username', 'tony')
print(user_dict, res) # 键存在则不修改 结果是键对应的值
res = user_dict.setdefault('age', 123)
print(user_dict, res)
# 存不存在则新增键值对 结果是新增的值
user_dict.popitem() # 弹出键值对 后进先出
user_dict.update({'username': 'jack', 'age': 20})
# key存在则修改,不存在则新增
三、元组(tuple)内置方法
定义:t1 = (11,22,33,44)
# 数据类型转变
# 但凡能被for循环遍历的数据类型都可以传tuple()转换成元组类型
print(tuple(123))
print(tuple(123.11))
print(tuple('hello')) # ('h', 'e', 'l', 'l', 'o')
print(tuple([11,22,33,44])) # (11,22,33,44)
print(tuple((1,2,3,4))) # (1,2,3,4)
print(tuple({'username': 'kevin', 'age': 19})) # ('username', 'age')
print(tuple({111,222,33,444})) # (33, 444,222,111)
# 取值
print(tuple1[0])
print(tuplel[3])
print(tuplel[-1])
print(tuplel[-2])
print(tuplel[-3])
# 长度
len(tuplel)
'''元组笔试题'''
t = (111)
t1 = (111.11)
t2 = ('hello')
t3 = ('hello', ) # 当元组内部哪怕是一个元素,也要加逗号隔开,否则就不是元组类型
l = ['hello',] # list
'''容器类型:可以存放多个元素的数据类型都是容器类型
推荐:如果是容器类型,内部就算有一个元素,也最后都加上一个逗号隔开
'''
print(type(t)) # <class 'int'>
print(type(t1)) # <class 'float'>
print(type(t2)) # <class 'str'>
print(type(t3)) # <class 'tuple'>
print(type(l)) # <class 'tuple'>
四、集合(set)内置方法
1.类型转换
set()
集合内数据必须是不可变类型(整型 浮点型 字符串 元组)
集合内数据也是无序的 没有索引的概念
2.集合需要掌握的方法
去重
关系运算
ps:只有遇到上述两种需求的时候才应该考虑使用集合
3.去重
s1 = {11, 22, 11, 22, 22, 11, 222, 11, 22, 33, 22}
l1 = [11, 22, 33, 22, 11, 22, 33, 22, 11, 22, 33, 22]
s1 = set(l1)
l1 = list(s1)
print(l1)
'''集合的去重无法保留原先数据的排列顺序'''
4.关系运算
群体之间做差异化校验
eg: 两个微信账户之间 有不同的好友 有相同的好友
f1 = {'jason', 'tony', 'jerry', 'oscar'} # 用户1的好友列表
f2 = {'jack', 'jason', 'tom', 'tony'} # 用户2的好友列表
# 1.求两个人的共同好友
# print(f1 & f2) # {'jason', 'tony'}
# 2.求用户1独有的好友
# print(f1 - f2) # {'jerry', 'oscar'}
# 3.求两个人所有的好友
# print(f1 | f2) # {'jason', 'jack', 'tom', 'tony', 'oscar', 'jerry'}
# 4.求两个人各自独有的好友
# print(f1 ^ f2) # {'oscar', 'tom', 'jack', 'jerry'}
# 5.父集 子集
print(f1 > f2)
print(f1 < f2)
分类:
python基础
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)