首页 > 编程语言 >Python中的四种推导式

Python中的四种推导式

时间:2023-10-03 21:46:41浏览次数:59  
标签:推导 Python item condition print type 四种 out

推导式

列表推导式

这是一种最常见的推导式,相比有不少人都用过,至少也见过,减少了了编写Python代码的代码长度
语法结构是这样的

[out_exp_res for out_exp in input_list]
[out_exp_res for out_exp in input_list if condition]

给出一个实例就是

x = [x * 2 for x in [1, 2, 3]]
y = [x * 2 for x in [1, 2, 3, 4] if x > 2]
print(type(x))
print(type(y))

# <class 'list'>
# <class 'list'>

字典推导式

主要用于快速创建一个字典

{key_expr : value_expr for value in collection}
{key_expr : value_expr for value in collection if condition}

给出一个实例就是

x = {x: x * 2 for x in [1, 2, 3]}
y = {x: x * 2 for x in [1, 2, 3, 4] if x > 2}
print(type(x))
print(type(y))

# <class 'dict'>
# <class 'dict'>

集合推导式

用于快速创建一个集合

{ expression for item in Sequence }
{ expression for item in Sequence if condition }

给出一个实例就是

x = {x for x in [1, 2, 3]}
y = {x for x in [1, 2, 3, 4] if x > 2}
print(type(x))
print(type(y))

# <class 'set'>
# <class 'set'>

元组推导式(生成器表达式)

可以利用一个 Iterable 的对象制作一个生成器,优势在于空间占用较小,每次使用访问实时计算。

(expression for item in Sequence)
(expression for item in Sequence if condition)

给出一个实例就是

x = (x for x in range(1, 10))
y = (x for x in range(1, 100) if x > 10)
print(x)
print(y)
print(type(x))
print(type(y))

# <generator object func11.<locals>.<genexpr> at 0x102a736b0>
# <generator object func11.<locals>.<genexpr> at 0x102f052f0>
# <class 'generator'>
# <class 'generator'>

至于空间问题笔者曾在另一篇介绍可迭代、迭代器、生成器区别的时候已经有所提及,这里就不再赘述。

标签:推导,Python,item,condition,print,type,四种,out
From: https://www.cnblogs.com/Gensokyo-Alice/p/17741691.html

相关文章

  • vim python 取消变量名自动提示
    vim 配置了python补全插件coc.nvim,linux没事,只有mac会自动添加变量名提示。取消变量名自动提示 设置方法,CocConfig,添加如下:{"inlayHint.enable":false}......
  • Python 列表操作指南1
    Python列表mylist=["apple","banana","cherry"]列表用于在单个变量中存储多个项目。列表是Python中的4种内置数据类型之一,用于存储数据集合,其他3种分别是元组(Tuple)、集合(Set)和字典(Dictionary),它们具有不同的特性和用途。使用方括号创建列表:#创建一个列表thislist......
  • Python 列表操作指南2
    将元组的元素添加到列表中:thislist=["apple","banana","cherry"]thistuple=("kiwi","orange")thislist.extend(thistuple)print(thislist)remove()方法用于移除指定的项目。示例,移除"banana":thislist=["apple&quo......
  • python3 番外篇之pyenv安装python遇到的ssl问题
    最近在学爬虫,在Linux中通过pyenv安装3.9.10,安装时也没有问题,问题就出在安装完requests模块后,引用requests模块报错。(reptile)root@localhost:/data/reptile#pythonPython3.9.10(main,Aug102023,01:32:05)[GCC7.3.0]onlinuxType"help","copyright","credits"......
  • 第03章 Python的数据结构、函数和文件
    本章讨论Python的内置功能,这些功能本书会用到很多。虽然扩展库,比如pandas和Numpy,使处理大数据集很方便,但它们是和Python的内置数据处理工具一同使用的。我们会从Python最基础的数据结构开始:元组、列表、字典和集合。然后会讨论创建你自己的、可重复使用的Python函数。最后,会学习P......
  • 第02章 Python语法基础,IPython和Jupyter Notebooks
    第2章Python语法基础,IPython和JupyterNotebooks当我在2011年和2012年写作本书的第一版时,可用的学习Python数据分析的资源很少。这部分上是一个鸡和蛋的问题:我们现在使用的库,比如pandas、scikit-learn和statsmodels,那时相对来说并不成熟。2017年,数据科学、数据分析和机器学习的......
  • Python类的内置成员方法 __init__, __new__ 和 __call__
    __init__和__new__这个方法想必大家平常也用的很多,这个方法负责对象的初始化。什么是初始化呢?就是对已经存在的东西赋若干个初始值。所以我们可以知道当我们调用__init__()方法的时候,这个类已经被实例化了。我们可以运行一下如下代码classA():def__new__(cls,*ar......
  • python基本数据类型之布尔类型
    所有数据都自己的布尔值零值:所有数据都有且仅有一个值的bool值为FLASE,该值为此类型的零值。整型和浮点型数据除了0,布尔值为FLASE,其它全是TRUE。(0为整型和浮点型的零值)字符串、列表、字典除了容器中为空,其布尔值为FLASE,其它全为TRUE。("",[],{}分别为字符串、列表、字典的零值)p......
  • 笨办法学Python3 习题16 读写文件
    知识点:a_txt=open(file_a)         #默认只读模式打开文件file_a,赋值变量a_txt,后面好执行读取命令b_txt=open(file_b,"w")      #以write写入模式打开文件file_b,赋值变量b_txt//还有"r"只取模式,"a"追加模式a_txt_r=a_txt.rea......
  • 笨办法学Python3 习题15 读取文件
    知识点:要读取文件内容,需要先执行打开文件命令// 先filetxt=open(filename)  再print(filetxt.read()) //注意文件内容不能有英文外的文字,否则报错 1fromsysimportargv#从系统模块导入到参数变量23script,filename=argv......