XX学Python·总结和推导式
公共方法总结
-
+:有{}的都不行,即字典,集合
-
适用所有基础数据类型(int float bool),容器类型只有列表,元组,字符串
-
两侧要是同种数据类型
-
加法运算在容器类型中是拼接的意思
-
-
×:有{}不行,即字典,集合
-
适用所有基础数据类型(int float bool),容器类型只有列表,元组,字符串
-
容器类型只能与int类型相乘(乘负数和0就是空的容器)
-
乘法就是将容器类型复制指定次数,并进行拼接
-
a = '爱你' print(a * 3) # 爱你爱你爱你 list1 = [1,2,3] print(list1 * 2) # [1, 2, 3, 1, 2, 3] print(list1 * 0) # [] print(list1 * -1) # []
-
in和not in
-
字符串,列表,元组,字典,集合都可以使用
-
判断元素是否在容器内,该元素必须能保存到容器内。比如列表、字典、集合本身都无法用集合储存,同样不能作为字典的键。
-
字典判断的是元素是否在key中,即是否为其中的键。
-
# 格式:元素 in 容器,返回布尔值 set1 = {3,'rose','jack'} print(3 in set1) # True print('rose' not in set1) # False # 注意:判断的数据必须能够在集合中储存 # print([2,3] in set1) # TypeError: unhashable type: 'list'
-
切片
-
字符串,列表,元组可以切片,格式[起始位置:终止位置:步长]
-
集合和字典无法切片,因为不能使用索引获取数据
-
所有切片都不会修改原有数据,而是产生一个新的数据序列
-
-
len()
-
可以获得str,list,tuple,set中元素个数
-
获得dict中键值对个数
-
同等于:容器._ _ len _ (),比如print(len(list1)与print(list1. _ _ len _ _())相同
-
-
max min
list、tuple、set、str可以使用max min获取容器内最大最小值,例如print(max(list1))
dict是使用max和min获取键的最大最小值,例如print(max(dict1))
-
enumerate枚举
-
所有容器和可迭代类型都可以使用enumerate(数据,起始序号)。
-
获取容器里数据时添加序号,默认序号从0开始,此序号可以作为索引使用
-
一般用在 for 循环当中,是(序号,值)组成的元组
list1 = ['xx', 2, 'lsl'] for i in enumerate(list1): print(i) '''结果如下 (0, 'xx') (1, 2) (2, 'lsl') ''' for index,value in enumerate(list1): print(index, value, sep=':') # 用:进行分割 '''结果如下 0:xx 1:2 2:lsl ''' # 字典中获取的是key dict1 = {'name': 'xx', 'age': 18} for i in enumerate(dict1): print(i) # 如(0, 'name') for order_num, value in enumerate(dict1): # order_num序号的意思 print(order_num, value, sep=':') # 获取的key,如1:age set1 = {'xx', 520, 'lsl'} for order_num, value in enumerate(set1): print(order_num, value, sep=':') # 结果顺序不定 -
推导式
-
列表推导式:[要插入的值 for 临时变量 in 数据序列 if 条件]
-
集合推导式:
-
字典推导式:
-
所有推导式都可以用for循环改写,不熟练的时候可以采用
-
没有元组和字符串推导式,因为其内部元素无法被修改
# 获取0到9的数据序列 # 使用while循环 list1 = [] i = 0 while i < 10: list1.append(i) i += 1 print(list1) # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] # 使用for循环 list2 = [] for i in range(0, 10): list2.append(i) print(list2) # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] # 使用推导式 list3 = [i for i in range(10)] print(list3) # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] # 练习:使用推导式创建一个1-10的偶数数据序列 # 使用for list4 = [] for i in range(1, 11): if i % 2 == 0: list4.append(i) print(list4) # [2, 4, 6, 8, 10] # 推导式,注意和上面的for循环结构对应。 list5 = [i for i in range(1, 11) if i % 2 == 0] print(list5) # [2, 4, 6, 8, 10] # 练习:用推导式打印九九乘法表,将所有算式放入列表中 # for循环打印没有放入列表中 for i in range(1,10): for j in range(1,i+1): print(f'{j}*{i}={i*j}', end=' ') print() # for循环打印放入列表中 list11 = [] for i in range(1,10): for j in range(1,i+1): list11.append(f'{j}*{i}={i*j}') print(list11) # 推导式 list6 = [f'{j}*{i}={i*j}' for i in range(1, 10) for j in range(1, i+1)] print(list6) # 集合推导式和列表相同 set1 = {i for i in range(1, 11) if i % 2 == 0} print(set1) # {2, 4, 6, 8, 10} # 字典推导式 keys = ['name', 'age'] values = ['xx', 18] # 用for循环 dict1 = {} for i in range(len(keys)): dict1[keys[i]] = values[i] print(dict1) # {'name': 'xx', 'age': 18} # 用推导式 dict2 = {keys[i]: values[i] for i in range(len(keys))} print(dict2) # {'name': 'xx', 'age': 18}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理