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)
