首页 文章资讯内容详情

Python 列表解析

2026-06-01 4 花语

本文内容纲要:

作者博文地址:https://www.cnblogs.com/liu-shuai/

列表解析

根据已有列表,高效创建新列表的方式。

列表解析是Python迭代机制的一种应用,它常用于实现创建新的列表,因此用在[]中。

语法:

[expressionforiter_valiniterable]

[expressionforiter_valiniterableifcond_expr]

实例展示:

1要求:列出1~10所有数字的平方 2#################################################### 31、普通方法:4>>>L=[]5>>>foriinrange(1,11):6...L.append(i**2)7...8>>>printL9[1,4,9,16,25,36,49,64,81,100]10####################################################112、列表解析12>>>L=[i**2foriinrange(1,11)]13>>>printL14[1,4,9,16,25,36,49,64,81,100] 1要求:列出1~10中大于等于4的数字的平方 2#################################################### 31、普通方法:4>>>L=[]5>>>foriinrange(1,11):6...ifi>=4:7...L.append(i**2)8...9>>>printL10[16,25,36,49,64,81,100]11####################################################122、列表解析13>>>L=[i**2foriinrange(1,11)ifi>=4]14>>>printL15[16,25,36,49,64,81,100] 1要求:列出1~10所有数字的平方除以2的值 2#################################################### 31、普通方法4>>>L=[]5>>>foriinrange(1,11):6...L.append(i**2/2)7...8>>>printL9[0,2,4,8,12,18,24,32,40,50]10####################################################112、列表解析12>>>L=[i**2/2foriinrange(1,11)]13>>>printL14[0,2,4,8,12,18,24,32,40,50] 1要求:列出"/var/log"中所有已.log结尾的文件2##################################################31、普通方法4>>>importos5>>>file=[]6>>>forfileinos.listdir(/var/log):7...iffile.endswith(.log):8...file.append(file)9...10>>>printfile11[anaconda.ifcfg.log,Xorg.0.log,anaconda.storage.log,Xorg.9.log,yum.log,anaconda.log,dracut.log,pm-powersave.log,anaconda.yum.log,wpa_supplicant.log,boot.log,spice-vdagent.log,anaconda.program.log]12##################################################132.列表解析14>>>importos15>>>file=[fileforfileinos.listdir(/var/log)iffile.endswith(.log)]16>>>printfile17[anaconda.ifcfg.log,Xorg.0.log,anaconda.storage.log,Xorg.9.log,yum.log,anaconda.log,dracut.log,pm-powersave.log,anaconda.yum.log,wpa_supplicant.log,boot.log,spice-vdagent.log,anaconda.program.log] 1要求:实现两个列表中的元素逐一配对。 21、普通方法: 3>>>L1=[x,y,z]4>>>L2=[1,2,3]5>>>L3=[]6>>>forainL1:7...forbinL2:8...L3.append((a,b))9...10>>>printL311[(x,1),(x,2),(x,3),(y,1),(y,2),(y,3),(z,1),(z,2),(z,3)]12####################################################132、列表解析:14>>>L1=[x,y,z]15>>>L2=[1,2,3]16L3=[(a,b)forainL1forbinL2]17>>>printL318[(x,1),(x,2),(x,3),(y,1),(y,2),(y,3),(z,1),(z,2),(z,3)] 1使用列表解析生成9*9乘法表 2 3print(\n.join([.join([%s*%s=%-2s%(y,x,x*y)foryinrange(1,x+1)])forxinrange(1,10)]))

说明:

以上实例,使用列表解析比使用普通方法的速度几乎可以快1倍。因此推荐使用列表解析。

本文内容总结:

原文链接:https://www.cnblogs.com/liu-shuai/p/6098227.html