首页 > 解决方案 > 如何在python中以特定字符开头的字符串列表中选择特定数量的元素?

问题描述

我有一个包含以日期开头的文件的列表,例如:

["CITY_NAME_20170102", "CITY_NAME_20170103", ...]

现在,我想运行一个单行代码,从这个长长的列表中为每个特定城市选择特定的年份。首先我想到的是运行一个 for 循环并编写一个 if 子句来遍历所有文件名,并且只附加以特定年份和城市开头的文件名。但是,我确信有一种更简单的方法可以做到这一点。

例如,是否有任何功能可以搜索所有元素并给我一个从 2017 年开始的功能?

标签: pythonpython-3.xstringlistindexing

解决方案


要从给定的字符串中提取年份,请使用负索引。

例子:

a="CITY_NAME_20170103"
a[-8:-4]
# '2017'

Pythonic的方式是

[s for s in list_of_strings if x[-8:-4] == '2017'] #Suggested by @schwobaseggl in the comments

您还可以使用2017 年filter获取字符串列表

list(filter(lambda x: x[-8:-4]=='2017',list_of_strings))

推荐阅读