首页 > 编程语言 >python的列表生成式

python的列表生成式

时间:2024-07-13 21:30:40浏览次数:16  
标签:10 python 生成式 列表 range print 生成

文章目录

python的列表生成式

Python 列表生成式(List Comprehensions)是一种简洁且易于阅读的语法,用于从其他可迭代对象创建列表。它们提供了一种非常Pythonic的方式来创建列表,尤其是当你需要对一个序列中的每个元素执行某种操作或者创建一个满足特定条件的元素子集时。

列表生成式的基本语法如下:

[expression for item in iterable if condition]
  1. expression:这是一个关于item的表达式,用于生成列表中的元素。
  2. for item in iterable:这是一个for循环,遍历可迭代对象iterable。
  3. if condition(可选):这是一个条件表达式,用于过滤出满足条件的元素。
    示例:

1.创建列表

创建一个1到10的列表

#for循环创建
a = []
for i in range(10):
    a.append(i)
print(a)
#列表生成
b = [i for i in range(10)]
print(b)
#输出结果:
#[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
#[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

2. 筛选偶数

从1到10中选出偶数

#利用for循环
c = []
for i in range(10):
    if i % 2 == 0:
        c.append(i)
print(c)
#列表生成式
d = [i for i in range(10) if i % 2 == 0]
print(d)
#输出结果:
#[0, 2, 4, 6, 8]
#[0, 2, 4, 6, 8]

3.生成99乘法表

生成99乘法表

#for循环生成
nine = []
for i in range(1, 10):
    nine.append("\t".join([f"{i} * {j} = {i * j}" for j in range(1, i + 1)]))
print("\n".join(nine))
#列表生成式生成
nine1 =["\t".join([f"{i} * {j} = {i * j}" for j in range(1, i + 1)]) for i in range(1, 10)]
print("\n".join(nine1))
#输出结果:
#1 * 1 = 1
#2 * 1 = 2	2 * 2 = 4
#3 * 1 = 3	3 * 2 = 6	3 * 3 = 9
#4 * 1 = 4	4 * 2 = 8	4 * 3 = 12	4 * 4 = 16
#5 * 1 = 5	5 * 2 = 10	5 * 3 = 15	5 * 4 = 20	5 * 5 = 25
#6 * 1 = 6	6 * 2 = 12	6 * 3 = 18	6 * 4 = 24	6 * 5 = 30	6 * 6 = 36
#7 * 1 = 7	7 * 2 = 14	7 * 3 = 21	7 * 4 = 28	7 * 5 = 35	7 * 6 = 42	7 * 7 = 49
#8 * 1 = 8	8 * 2 = 16	8 * 3 = 24	8 * 4 = 32	8 * 5 = 40	8 * 6 = 48	8 * 7 = 56	8 * 8 = 64
#9 * 1 = 9	9 * 2 = 18	9 * 3 = 27	9 * 4 = 36	9 * 5 = 45	9 * 6 = 54	9 * 7 = 63	9 * 8 = 72	9 * 9 = 81
#1 * 1 = 1
#2 * 1 = 2	2 * 2 = 4
#3 * 1 = 3	3 * 2 = 6	3 * 3 = 9
#4 * 1 = 4	4 * 2 = 8	4 * 3 = 12	4 * 4 = 16
#5 * 1 = 5	5 * 2 = 10	5 * 3 = 15	5 * 4 = 20	5 * 5 = 25
#6 * 1 = 6	6 * 2 = 12	6 * 3 = 18	6 * 4 = 24	6 * 5 = 30	6 * 6 = 36
#7 * 1 = 7	7 * 2 = 14	7 * 3 = 21	7 * 4 = 28	7 * 5 = 35	7 * 6 = 42	7 * 7 = 49
#8 * 1 = 8	8 * 2 = 16	8 * 3 = 24	8 * 4 = 32	8 * 5 = 40	8 * 6 = 48	8 * 7 = 56	8 * 8 = 64
#9 * 1 = 9	9 * 2 = 18	9 * 3 = 27	9 * 4 = 36	9 * 5 = 45	9 * 6 = 54	9 * 7 = 63	9 * 8 = 72	9 * 9 = 81

4. 列表推导式中的嵌套循环

创建一个包含所有(x, y)对的列表,其中x取值范围为1到3,y取值范围为1到x(即1到1, 1到2, 1到3)

#for循环生成
num = []
for x in range(1, 4):
    for y in range(1, x + 1):
        num.append((x, y))
print(num)
#列表生成
pairs = [(x, y) for x in range(1, 4) for y in range(1, x + 1)]
print(pairs)
#输出结果:
#[(1, 1), (2, 1), (2, 2), (3, 1), (3, 2), (3, 3)]
#[(1, 1), (2, 1), (2, 2), (3, 1), (3, 2), (3, 3)]

列表生成式是Python中非常强大的工具,可以极大地简化代码,提高代码的可读性和执行效率。

标签:10,python,生成式,列表,range,print,生成
From: https://blog.csdn.net/2301_77698138/article/details/140405292

相关文章

  • c++初始化列表和构造函数初始化的区别
    在C++中,初始化列表和构造函数初始化是两种不同的方法用于初始化类的成员变量。初始化列表(InitializationList):初始化列表是在构造函数的参数列表后面使用冒号(:),然后跟随着每个成员变量的初始化方式。通过初始化列表,可以在对象构造时直接为成员变量赋值,而不是在构造函数体内......
  • Python学习笔记36:进阶篇(二十五)pygame的使用之事件监听控制切歌和暂停,继续播放
    前言基础模块的知识通过这么长时间的学习已经有所了解,更加深入的话需要通过完成各种项目,在这个过程中逐渐学习,成长。我们的下一步目标是完成pythoncrashcourse中的外星人入侵项目,这是一个2D游戏项目。在这之前,我们先简单学习一下pygame模块。私信我发送消息python资料,......
  • 对红酒品质进行数据分析(python)
    http://t.csdnimg.cn/UWg2S数据来源于这篇博客,直接下载好csv文件。这篇内容均在VScode的jupyternotebook上完成,操作可以看我的另一篇博客:http://t.csdnimg.cn/69sDJ一、准备工作1.导入数据库#功能是可以内嵌绘图,并且可以省略掉plt.show()这一步,具体作用是当你调用matplo......
  • 0基础学python-10:函数的定义,调用以及参数
    目录前言1.函数的定义2.函数的调用3.函数的参数<1>必选参数<2 >默认参数<3> 可变参数<4>关键字参数 <5> 命名关键字参数 4.注意事项前言        函数是一段完成特定任务的代码块,可以通过定义、调用和传递参数来实现代码的模块化和......
  • 基于python的学生成绩管理系统(GUI)
     利用python语言实现成绩管理系统的实现,以某班学生为例,实现以下功能:(1)   添加学生信息以及其九科成绩信息;(2)   将学生信息保存在文件中;(3)   修改和删除学生信息;(4)   查询学生信息;(5)   显示已经添加的所有学生信息。设计要求:1.具有主菜单界面显示。2.有......
  • abaqus基于python二次开发——钢结构穹顶建模
    模型示意本工作旨在建立一个上表面近乎球面的钢结构穹顶。如下图所示,该穹顶由环向梁和径向梁组成。环向梁径向梁上下截面都为工字钢。环向梁截面如下图所示,环向梁截面有一个倾斜角度,为了使其上表面尽可能与球面贴合。径向梁横截面为不经过旋转的工字形代码讲解 2......
  • 使用 pip 和 requirements.txt 安装 Python 包
    1.构建当前项目需要的软件包pip3installpipreqspip3installpip-toolspipreqs--savepath=requirements.in&&pip-compile1.根据配置文件批量安装软件包。requirements.txt在某些环境中,可使用pip3而不是pippipinstall-rrequirements.txt2.检查当前环境......
  • python——数据类型及常用操作
    1.Intint是一种基本的数据类型,可以存储任意大小的整数,定义简单,将一个值赋给变量即可可以和+-*/等运算符结合a=2b=3c=a+bprint(c)d=b-apint(d)e=a*bprint(e)fa/bprint(f)a=2print(a)2.Floatfloat表示浮点数 也就是我们常说的带有小数......
  • python进程和线程_day013
    python进程和线程概念相关进程概览线程概览Python中的多进程Python中的多线程多进程还是多线程单线程+异步I/O(协程)应用案例示例1:将耗时间的任务放到线程中以获得更好的用户体验示例2:使用多进程对复杂任务进行“分而治之”。今天我们使用的计算机早已进入多CPU或多核......
  • 使用python绘制3D柱状图+完整代码展示
    一、首先进行代码效果图的展示        这是一个简单的3D模型图的展示,我们可以从官网上看到有类似的模型代码,但是大部分都没有加上全局系统配置,整体效果很单一,看不出来有什么特色,我们可以通过了解我们的python绘图工具pyecharts库。二、了解代码这个就是我们的全局......