在python中,从列表中获取特定数字的最佳方法是什么?

2024-10-01 13:34:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下清单:

l = [
    'D111_26680270__2019_10.xml',
    'D111_26680270__2019_10_generat.PDF',
    'D111_26680270__2019_10_generat.xdp',
    'D111_32338396__2019_10.xml',
    'D111_32338396__2019_10_generat.PDF',
    'D111_32338396__2019_10_generat.xdp',
    'D111_40037513__2019_10_generat.pdf',
    'D111_31123410__2019_10.xml',
    'D111_31123410__2019_10_generat.PDF',
    'D111_31123410__2019_10_generat.xdp'
]

如何从列表中的所有示例中得到一个只在'D111_'后面有数字的列表,比如'26680270''40037513'? 谢谢你


Tags: 示例列表pdf数字xmld111xdpgenerat
2条回答

因为你有固定的数量使用切片它的效率和简单的方法

>>> data = ['D111_26680270__2019_10.xml', 'D111_26680270__2019_10_generat.PDF', 'D111_26680270__2019_10_generat.xdp', 'D111_32338396__2019_10.xml', 'D111_32338396__2019_10_generat.PDF', 'D111_32338396__2019_10_generat.xdp', 'D111_40037513__2019_10_generat.pdf', 'D111_31123410__2019_10.xml', 'D111_31123410__2019_10_generat.PDF', 'D111_31123410__2019_10_generat.xdp']

>>> [item[5:13] for item in data]
['26680270', '26680270', '26680270', '32338396', '32338396', '32338396', '40037513', '31123410', '31123410', '31123410']

您可以使用列表中的str.split来实现这一点

>>> data = ['D111_26680270__2019_10.xml', 'D111_26680270__2019_10_generat.PDF', 'D111_26680270__2019_10_generat.xdp', 'D111_32338396__2019_10.xml', 'D111_32338396__2019_10_generat.PDF', 'D111_32338396__2019_10_generat.xdp', 'D111_40037513__2019_10_generat.pdf', 'D111_31123410__2019_10.xml', 'D111_31123410__2019_10_generat.PDF', 'D111_31123410__2019_10_generat.xdp']
>>> [i.split('_')[1] for i in data]
['26680270', '26680270', '26680270', '32338396', '32338396', '32338396', '40037513', '31123410', '31123410', '31123410']

相关问题 更多 >