当前位置: 首页 > 后端技术 > Python

干货-Python中的四种推导

时间:2023-03-26 00:42:24 Python

Python推导是一种独特的数据处理方法,可以从一个数据序列构造出另一个新的数据序列结构。Python支持理解各种数据结构:列表(list)理解字典(dict)理解集合(set)理解元组(tuple)理解列表理解格式[expressionforvariableinlist][out_exp_resforout_expininput_list]or[expressionforvariableinlistifcondition][out_exp_resforout_expininput_listifcondition]out_exp_res:列表生成元素表达式,可以是一个有返回值的函数。对于input_list中的out_exp:迭代input_list以将out_exp传递到out_exp_res表达式中。ifcondition:条件语句,可以过滤列表中不满足条件的值。过滤掉长度小于或等于3的字符串列表,将其余的转换为大写字母:示例>>>names=['Bob','Tom','alice','Jerry','Wendy','Smith']>>>new_names=[name.upper()fornameinnamesiflen(name)>3]>>>print(new_names)['ALICE','JERRY','WENDY','SMITH']计算30以内可被3整除的整数:示例>>>multiples=[iforiinrange(30)ifi%3==0]>>>print(multiples)[0,3,6,9,12,15,18,21,24,27]字典理解{key_expr:value_exprforvalueincollection}or{key_expr:value_exprforvalueincollectionifcondition}使用字符串及其长度创建字典:instancelistdemo=['Google','Runoob','淘宝']#以列表中的字符串值为key,每个字符串的长度为value,组成键值对>>>newdict={key:len(key)forkeyinlistdemo}>>>newdict{'Google':6,'Runoob':6,'Taobao':6}提供三个数,用三个数作为keys和的平方将三个数字作为值创建字典:示例>>>dic={x:x**2forxin(2,4,6)}>>>dic{2:4,4:16,6:36}>>>type(dic)Collectioncomprehension集合理解的基本格式:{expressionforiteminSequence}or{expressionforiteminSequenceifconditional}计算数字1、2、3的平方数:例子>>>setnew={i**2foriin(1,2,3)}>>>setnew{1,4,9}判断字母不是abc和输出:示例>>>a={xforxin'abracadabra'ifxnotin'abc'}>>>a{'d','r'}>>>type(a)元组推导元组推导可以使用范围区间、元组、列表、字典、集合等数据类型快速生成满足指定要求的元组。元组推导的基本格式是:(expressionforiteminSequence)or(expressionforiteminSequenceifconditional)元组推导和列表推导的用法完全一样,只是元组推导用()括号括起来部分,而列表理解使用方括号[],元组理解返回的结果是一个生成器对象。例如,我们可以使用以下代码生成一个包含数字1~9的元组:示例>>>a=(xforxinrange(1,10))>>>aat0x7faf6ee20a50>#返回生成器对象>>>tuple(a)#使用tuple()函数,可以直接将生成器对象转换成元组(1,2,3,4,5,6,7,8,justrecently电子版Python书籍资料等资料已经整理完毕,全部打包,需要的可以直接去公众号【Python编程学习圈】获取,即可获取关注回复关键词【学习资料】免费获取,包括入门,进阶、爬虫、数据分析等方向的教程不要错过!