python 列表推导式使用详解

yipeiwu_com6年前Python基础

所谓的列表推导式,就是指的轻量级循环创建列表。

基本使用方式

# 创建一个0-10的列表
a = [x for x in range(11)]
print(a)
"""
输出结果:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
"""

上面的列表推导式等价于下面,只是代码非常简化。

a = []
for x in range(10):
  a.append(x)

在循环的过程中使用if

# 创建一个1-10之间偶数的列表
a = [x for x in range(11) if x%2==0]
"""
输出结果:
[0, 2, 4, 6, 8, 10]
"""

等价于

a = []
for x in range(11):
  if x%2 == 0:
    a.append(x)

2个for循环

a = [(x,y) for x in range(3) for y in range(3)]
print(a)
"""
输出结果:
[(0, 0), (0, 1), (0, 2), (1, 0), (1, 1), (1, 2), (2, 0), (2, 1), (2, 2)]
"""

等价于

a = []
for x in range(3):
  for y in range(3):
    a.append((x,y))

练习

生成一个[[1,2,3],[4,5,6]....]的列表最大值在100以内

首先考虑一下正常情况我们应该怎么写

a = []
for x in range(1,100,3):
  a.append([x,x+1,x+2])

然后再把它转换成列表推导式

a = [[x,x+1,x+2] for x in range(1,100,3)]

文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值

相关文章

python自定义时钟类、定时任务类

这是我使用python写的第一个类(也算是学习面向对象语言以来正式写的第一个解耦的类),记录下改进的过程。 分析需求 最初,因为使用time模块显示日期时,每次都要设置时间字符串的格式,...

python中yield的用法详解——最简单,最清晰的解释

首先我要吐槽一下,看程序的过程中遇见了yield这个关键字,然后百度的时候,发现没有一个能简单的让我懂的,讲起来真TM的都是头头是道,什么参数,什么传递的,还口口声声说自己的教程是最简单...

python如何查看系统网络流量的信息

前言 流量信息可以直接在/proc/net/dev中进行查看,笔者实现的程序使用命令: python net.py interface 其中interface为网卡名称,使用什么网...

深入理解Python装饰器

装饰器简介: 装饰器(decorator)是一种高级Python语法。装饰器可以对一个函数、方法或者类进行加工。在Python中,我们有多种方法对函数和类进行加工,比如在Python闭包...

Pyqt5如何让QMessageBox按钮显示中文示例代码

Pyqt5如何让QMessageBox按钮显示中文示例代码

前言 QMessageBox是一种通用的弹出框对话框;包含:提示、警告、错误、咨询、关于等对话框;只是显示图标不同,其他功能类似; QMessageBox类常用方法如下: 按钮类型:...