滨州网站开发公司,网站建设需要提供哪些信息,怎么做网站咨询,0453牡丹江免费信息网手机版Python高级语 1 列表推导式1.1 什么是列表推导式1.2 列表推导式的使用 2 字典推导式2.1 什么是字典推导式2.2 字典推导式的使用 3 元组推导式4 集合推导式5 三元表达式5.1 什么是三元表达式5.2 三元表达式的使用 1 列表推导式
1.1 什么是列表推导式
列表推导式的英文#xf… Python高级语 1 列表推导式1.1 什么是列表推导式1.2 列表推导式的使用 2 字典推导式2.1 什么是字典推导式2.2 字典推导式的使用 3 元组推导式4 集合推导式5 三元表达式5.1 什么是三元表达式5.2 三元表达式的使用 1 列表推导式
1.1 什么是列表推导式
列表推导式的英文list cmprehension是Python独有的一种语法结构它将推导式又称解析式得到的各个结果组成一个新个列表是一种非常简洁的创建列表的语法适用于所有需要列表的场景。语法格式如下 [表达式 for 迭代变量 in 可迭代对象 [if 条件表达式]] 1.2 列表推导式的使用
优化简单for循环
for 循环代码 list_1 [a, b, c]list_2 []for i in list_1:list_2.append(i * 2) print(list_2)
[aa, bb, cc]列表推导式写法 list_1 [a, b, c]list_2 [i * 2 for i in list_1]print(list_2)
[aa, bb, cc]# 若不想取list_1列表中的全部元素可用if语句做过滤条件可迭代变量也可用于if语句中list_2 [i * 2 for i in list_1 if i ! b]print(list_2)
[aa, cc]优化两层for循环 list_1 [(m, n) for m in range(3) for n in range(3)]print(list_1)
[(0, 0), (0, 1), (0, 2), (1, 0), (1, 1), (1, 2), (2, 0), (2, 1), (2, 2)]多层for循环一样支持if语句 list_1 [(m, n) for m in range(3) if m 1 for n in range(3) if n 1]print(list_1)
[(2, 2)]list_1 [(m, n) for m in range(3) if m 1 for n in range(3)]print(list_1)
[(2, 0), (2, 1), (2, 2)]list_1 [(m, n) for m in range(3) for n in range(3) if m 1 and n 1]print(list_1)
[(2, 2)]列表推导式支持嵌套 list_1 [n 2 for n in [m 1 for m in range(3)]]print(list_1)
[3, 4, 5]2 字典推导式
2.1 什么是字典推导式
字典推导式的概念与列表推导式一样只不过返回的结果是字典。语法格式如下 {键:值 for 迭代变量 in 可迭代对象 [if 条件表达式]} 2.2 字典推导式的使用
注意字典中不能出现同名的 key第二次出现就把第一个值覆盖掉了因此 value 都是 1 dict_1 {key: value for key in range(3) for value in range(2)}print(dict_1)
{0: 1, 1: 1, 2: 1}dict_1 {key: value for key in range(3) for value in range(3)}print(dict_1)
{0: 2, 1: 2, 2: 2}常用场景遍历一个具有键值关系的可迭代对象 tuple_list [(name, 张三), (age, 28),(class, 9701), (like, python)]dict_1 {key: value for key, value in tuple_list}print(dict_1)
{name: 张三, age: 28, class: 9701, like: python}3 元组推导式
与列表和字典推导式不同的是它不是返回一个元组而是返回一个生成器对象也可以叫生成器推导式示例如下 tuple_1 (i for i in range(5))print(tuple_1)
generator object genexpr at 0x000002097F25F1D0并没有像我们想像的那样返回(0, 1, 2, 3, 4)这样的元组若需返回元组加上转换函数即可 tuple_1 (i for i in range(5))print(tuple(tuple_1))
(0, 1, 2, 3, 4)4 集合推导式
集合推导式需要注意的是集合是无序的在使用时会自动去掉重复的元素。 set_1 {i for i in HelloWorld}print(set_1)
{d, W, e, r, o, H, l}5 三元表达式
5.1 什么是三元表达式
Python中没有像C或Java语言中的三元表达式三目运算符的概念但也有类似的语法格式如下 if条件为True执行语句 if 条件表达式 else if条件为False执行语句 5.2 三元表达式的使用
简化 if 语句
# 原 if 语句
age 30
if age 18 :rs 成年
else:rs 未成年# 使用三元表达式
age 30
rs 成年 if age 18 else 未成年返回多个语句
age 30
rs 成年, 大于18岁 if age 18 else 未成年
print(rs)在函数中使用三元表达式
def e_num(num):return True if num % 2 0 else False三元表达式与 lambda一起使用
# 返回两个数的最大值max lambda a, b: a if a b else bprint(max(10, 15))
15print(max(88, 15))
88