Python列表推导式(更有风格的Python代码写法)

导读:本篇文章讲解 Python列表推导式(更有风格的Python代码写法),希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

所谓推导式也就是Python中一种更有风格的Python代码的写法。什么样是有风格的呢?假如有个需求,它可能需要三行五行甚至是更多行代码完成,但是如果是同样的需求用推导式来书写的话很可能一行代码就完成了,所以推导式的作用就是化简代码用的。

Python中只有三种推导式,分别是列表推导式、字典推导式和集合推导式。

列表推导式又叫做列表生成式。

作用:化简代码,用一个表达式创建一个有规律的列表或控制一个有规律列表。


一、体验列表推导式

需求:创建一个0-10的列表,如0,1,2,3,4….。

1.1while循环创建有规律的列表

代码体验:

# 1. 准备一个空列表list1 = []# while循环实现# 2. 书写循环,一次追加数字到空列表list1中i = 0while i < 10:    list1.append(i)    i += 1print(list1)# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

1.2 for循环创建有规律的列表

代码体验:

# 1. 准备一个空列表list1 = []# for循环实现# 2. 书写循环,一次追加数字到空列表list1中i = 0for i in range(10):    list1.append(i)print(list1)# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

1.3列表推导式创建有规律的列表

代码体验:

list1 = [i for i in range(10)]print(list1)# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

列表推导式写在一个列表的[]中括号里,它的读与写都从for循环开始,在for循环的左边写上的是for循环的返回值,所以0-9这些数据放在列表里,最后打印的就是[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]


二、带if的列表推导式

需求:创建0-10的偶数列表

2.1 方法一:range()步长实现

代码体验:

list1 = [i for i in range(0, 10, 2)]print(list1)# [0, 2, 4, 6, 8]

2.2 方法二: for循环加if实现

代码体验:

list2 = []for i in range(10):    if i % 2 == 0:        list2.append(i)print(list2)#[0, 2, 4, 6, 8]

2.3 方法三: 把方法二改写成 带if的列表推导式

代码体验:

List3 = [i for i in range(10) if i % 2 == 0]
print(list3)
# [0, 2, 4, 6, 8]

三、多个for循环实现列表推导式

需求:创建列表如下:

[(1, 0), (1, 1), (1, 2), (2, 0), (2, 1), (2, 2)]

3.1 for循环嵌套实现

代码体验:

# 数据1 是 1和2  ---》 range(1, 3)# 数据2 是 0 1 2  ---》 range(3)list1 = []for i in range(1, 3):    for j in range(3):        # 列表里面追加元组,在循环前准备一个空猎豹,然后在这个空列表里面追加元组数据        list1.append((i , j))print(list1)# [(1, 0), (1, 1), (1, 2), (2, 0), (2, 1), (2, 2)]

3.2 多个for实现列表推导式

代码体验:

list2 = [(i, j) for i in range(1, 3) for j in range(3)]
print(list2)
# [(1, 0), (1, 1), (1, 2), (2, 0), (2, 1), (2, 2)]

其实多for的列表推导式等同于for循环嵌套。

文章借鉴来源:Python自学网

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/73350.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!