Python 入门教程
0.为什么选择 Python 入门?
1.安装
2.print
3.IDE
4.输入
5.变量
6.bool
7.if
8.while
9.random
10.变量2
11.逻辑判断
12.for循环
13.字符串
14.字符串格式化
15.循环的嵌套
16.字符串格式化2
17.类型转换
18.bool类型转换
19.函数
20.命令行常用命令
21.函数的参数
22.函数应用示例
23.if, elif, else
24.if的嵌套
25.初探list
26.操作list
27.list切片
28.字符串的分割
29.连接list
30.字符串的索引和切片
31.读文件
32.写文件
33.处理文件中的数据
34.break
35.continue
36.异常处理
37.字典
38.模块
39.用文件保存游戏(1)
40.用文件保存游戏(2)
41.用文件保存游戏(3)
42.函数的默认参数
43.查天气(1)
44.查天气(2)
45.查天气(3)
46.面向对象(1)
47.面向对象(2)
48.面向对象(3)
49.面向对象(4)
50.and-or技巧
51.元组
52.数学运算
53.真值表
54.正则表达式(1)
55.正则表达式(2)
56.正则表达式(3)
57.正则表达式(4)
58.正则表达式(5)
59.随机数
60.计时
61.调试程序
62.python 2 到 3 的新手坑
63.python shell
64.列表解析
65.函数的参数传递(1)
66.函数的参数传递(2)
67.函数的参数传递(3)
68.lambda 表达式
69.变量的作用域
70.map 函数
71.reduce 函数
72.多线程
【Python 第64课】列表解析
大家假期过得可好?今天来讲讲 Python 里一个我非常喜欢的特性--列表解析(List Comprehension)。所谓列表解析(也有翻译成列表综合),就是通过一个已有的列表生成一个新的列表。
直接看例子:
假设有一个由数字组成的 list,现在需要把其中的偶数项取出来,组成一个新的 list。一种比较“正常”的方法是:
list_1 = [1, 2, 3, 5, 8, 13, 22]
list_2 = []
for i in list_1:
if i % 2 == 0:
list_2.append(i)
print (list_2)
输出
[2, 8, 22]
此方法通过循环来遍历列表,对其中的每一个元素进行判断,若模取2的结果为0则添加至新列表中。
使用列表解析实现同样的效果:
list_1 = [1, 2, 3, 5, 8, 13, 22]
list_2 = [i for i in list_1 if i % 2 == 0]
print (list_2)
输出
[2, 8, 22]
[i for i in list_1] 会把 list_1 中的每一个元素都取出来,构成一个新的列表。
如果需要对其中的元素进行筛选,就在后面加上判断条件 if。所以 [i for i in list_1 if i % 2 == 0] 就是把 list_1 中满足 i % 2 == 0 的元素取出来组成新列表。
进一步的,在构建新列表时,还可以对于取出的元素做操作。比如,对于原列表中的偶数项,取出后要除以2,则可以通过 [i / 2 for i in list_1 if i % 2 == 0] 来实现。输出为 [1, 4, 11]。
在实际开发中,适当地使用列表解析可以让代码更加简洁、易读,降低出错的可能。
留一道作业:
用一行 Python 代码实现:把1到100的整数里,能被2、3、5整除的数取出,以分号(;)分隔的形式输出。
来源:Crossin的编程教室