开发者学堂课程【Python 入门 2020年版:列表推导式的使用】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/639/detail/10305
列表推导式的使用
内容介绍
一、列表推导式
二、总结
一、列表推导式
1. 作用
使用简单的语法创建一个列表
2.range
代码
#列表推导式作用是使用简单的语法创建一个列表
nums =[ i for i in range( 10)] //生成范围在10以内的一个列表。
print(nums)
输出结果
[0,1,2,3,4,5,6,7,8,9]
nums =[ i for i in range( 10)]
表明的含义等同于 nums为一个空列表,而通过 for i in range(10) :
这个循环将 i的值一个个添加到空列表 nums中。两个代码的效果一样。
3.range的理解写法
代码
nums =[]
//nums为一个空列表
for i in range(10)
: //循环
nums . append(i)
//将 i的值一个个添加到空列表 nums中。
输出结果
[0,1,2,3,4,5,6,7,8,9]
4.添加 if判断
(1)偶数列表
将 x生成列表的循环再添加一个 if判断,x=[ i for i in range(10) if i % 2 == 0]
输出的结果会变成生成列表值范围内所有的偶数组成的列表。
但如果是 x=[ i for i in range(10) if i % 2]
则会变成范围内奇数所组成的列表
代码
x=[ i for i in range(10) if i % 2 == 0] //range(10)表示0-9
//i%2==0即表示其中所有的偶数
print(x)
输出结果
[0,2,4,6,8]
(2)奇数列表
但如果是 x=[ i for i in range(10) if i % 2]
则会变成范围内奇数所组成的列表,写法1和写法2的逻辑相同,if i % 2的结果应该是一个布尔值,不是布尔值时会自动转换,如 i=4,4%2等于0,0转换成布尔值则为 false,就不会进入下一条语句,则数字4不会出现在最后结果列表中,而3%2结果为1,转换为 true,则最后4输出。
代码
#写法1
x=[ i for i in range(10) if i % 2]
print(x)
#写法2
x=[]
for i in range( 10):
if i % 2:
x. append(i)
输出结果
[1,3,5,7,9]
[1,3,5,7,9]
5.多个循环嵌套
points列表中的元素为 for前的(x,y),(x,y)的写法表示元组。在元组(x,y)中 x是由5到9范围内生成的序列,y是由10到20生成的序列。输出的结果就是从(5,10)到(5,19),x再从6依次递增至8,依次与 y形成新序列。
代码
#points是一个列表。这个列表里的元素都是元组
points = [ (×, y) for x in range(5,9) for y in range(10,20)]
输出结果
[(5,10),(5,11),(5,12),(5,13),(5,14),(5,15),(5,16),(5,17),(5,18),(5,19)(6,10),(6,11),(6,12),(6,13),(6,14),(6,15),(6,16),(6,17),(6,18),(6,19)(7,10),(7,11),(7,12),(7,13),(7,14),(7,15),(7,16),(7,17),(7,18),(7,19)(8,10),(8,11),(8,12),(8,13),(8,14),(8,15),(8,16),(8,17),(8,18),(8,19)]
二、总结:
生成列表,其中的元素是元组还是数值,是看 for前的变量,如果是(x,y)的形式,即为元组。列表中的元素即为一个个元组,类似 i的形式,则是一个个数值。