广东建设银行招聘网站,网页制作app手机版,泉州住房城乡建设局网站,看p站用什么浏览器本文基于python3。 目录 1、Python推导式2、列表(list)推导式2.1、定义2.2、实际操作2.2.1、一个表达式#xff0c;后面为一个 for 子句2.2.2、一个表达式#xff0c;后面为一个 for 子句#xff0c;然后#xff0c;跟着if 子句。2.2.3、一个表达式#xff0c;后面为一个…本文基于python3。 目录 1、Python推导式2、列表(list)推导式2.1、定义2.2、实际操作2.2.1、一个表达式后面为一个 for 子句2.2.2、一个表达式后面为一个 for 子句然后跟着if 子句。2.2.3、一个表达式后面为一个 for 子句然后跟着 for 子句。2.2.4、一个表达式后面为一个 for 子句然后跟着 for 子句if 语句2.2.5、表达式的不同2.2.5.1、表达式是函数2.2.5.2、表达式是元组2.2.5.2、表达式是复杂的表达式和嵌套函数 3、利用列表推导式实现乘法口诀4、总结 1、Python推导式
你可以理解成一种数据的处理方式。目的是为了构建一个新的数据序列。 Python 支持各种数据结构的推导式
列表(list)推导式字典(dict)推导式集合(set)推导式元组(tuple)推导式
各自从字面意思就知道创建一个列表、字典、集合、元组。 我们本文只看列表(list)推导式。
2、列表(list)推导式
列表推导式创建列表的方式更简洁。 常见的用法
对序列或可迭代对象中的每个元素应用某种操作用生成的结果创建新的列表。用满足特定条件的元素创建子序列。
2.1、定义
定义主要有两种该部分定义来自菜鸟教程
定义1
[表达式 for 变量 in 列表]
[out_exp_res for out_exp in input_list]定义2
[表达式 for 变量 in 列表 if 条件]
[out_exp_res for out_exp in input_list if condition]out_exp_res列表生成元素表达式可以是有返回值的函数。for out_exp in input_list迭代 input_list 将 out_exp 传入到 out_exp_res 表达式中。if condition条件语句可以过滤列表中不符合条件的值。 总结一个表达式后面为一个 for 子句然后跟着零个或多个 for 或 if 子句。结果是由表达式依据 for 和 if 子句求值计算而得出一个新列表。 基于总结话我们来实际操作一下。
2.2、实际操作
2.2.1、一个表达式后面为一个 for 子句
创建 数值*2 的列表
TestList [x*2 for x in range(10)]print(TestList)
# [0, 2, 4, 6, 8, 10, 12, 14, 16, 18]等价于以下语句
TestList []
for x in range(10):TestList.append(x*2)print(TestList)2.2.2、一个表达式后面为一个 for 子句然后跟着if 子句。
创建 全是偶数 的列表
TestList [i for i in range(10) if i % 2 0]print(TestList)
# [0, 2, 4, 6, 8]等价于以下语句
TestList []
for i in range(10):if i % 2 0:TestList.append(i)print(TestList)2.2.3、一个表达式后面为一个 for 子句然后跟着 for 子句。
直接上实例一看就懂
OldList [[1, 2, 3], [4, 5, 6], [7, 8, 9]]TestList [j for i in OldList for j in i]print(TestList)
# [1, 2, 3, 4, 5, 6, 7, 8, 9]等价于以下语句
OldList [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
TestList []for i in OldList:for j in i:TestList.append(j)print(TestList)
# [1, 2, 3, 4, 5, 6, 7, 8, 9]2.2.4、一个表达式后面为一个 for 子句然后跟着 for 子句if 语句
直接上实例
OldList [[1, 2, 3], [4, 5, 6], [7, 8, 9]]TestList [j for i in OldList for j in i if j % 2 0]print(TestList)
# [2, 4, 6, 8]等价于以下语句
OldList [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
TestList []for i in OldList:for j in i:if j % 2 0:TestList.append(j)print(TestList)
# [2, 4, 6, 8]2.2.5、表达式的不同
因为列表生成元素表达式可以是有返回值的函数。因此就有一些其他用法。
2.2.5.1、表达式是函数
OldList [ AA, BB , CC ]
TestList [i.strip() for i in OldList]
# strip()去掉前后空格print(TestList)
# [AA, BB, CC]2.2.5.2、表达式是元组
TestList [(x, x**2) for x in range(6)]print(TestList)
# [(0, 0), (1, 1), (2, 4), (3, 9), (4, 16), (5, 25)]注意使用元组必须带小括号。
# 没带小括号
TestList [x, x**2 for x in range(6)]
print(TestList)# 错误信息
/Scripts/python.exe d:/05.ProjectWork/00.Python/00.Project/test_python/test.pyFile d:/05.ProjectWork/00.Python/00.Project/test_python/test.py, line 192TestList [x, x**2 for x in range(6)]^
SyntaxError: invalid syntax2.2.5.2、表达式是复杂的表达式和嵌套函数
from math import pi
TestList [str(round(pi, i)) for i in range(1, 9)]print(TestList)
# [3.1, 3.14, 3.142, 3.1416, 3.14159, 3.141593, 3.1415927, 3.14159265]3、利用列表推导式实现乘法口诀
直接上代码
print(\n.join([ .join([{}*{}{}.format(x, y, x*y) for x in range(1,y1)]) for y in range(1,10)]))结果如下
1*11
1*22 2*24
1*33 2*36 3*39
1*44 2*48 3*412 4*416
1*55 2*510 3*515 4*520 5*525
1*66 2*612 3*618 4*624 5*630 6*636
1*77 2*714 3*721 4*728 5*735 6*742 7*749
1*88 2*816 3*824 4*832 5*840 6*848 7*856 8*864
1*99 2*918 3*927 4*936 5*945 6*954 7*963 8*972 9*9814、总结
其实我们看这些实例他们的规律就是 最前面的表达式就是最后这个值做了怎么样的处理。 后面的for、if语句从左到右依次一层一层嵌套进去进行处理。 如果有问题请指出或者copy了谁的也请指出。 会及时更正。