我有一个文件名列表:
names = ['aet2000','ppt2000', 'aet2001', 'ppt2001']
虽然我发现一些功能可以用于grep字符串,我还没有弄清楚如何grep列表的所有元素。
例如我想:
grep(names,'aet')
并得到:
['aet2000','aet2001']
确定它不是太难,但我是Python的新手
更新
上面的问题显然不够准确。以下所有答案都适用于示例,但不适用于我的实际数据。这是我的代码,使文件名列表:
years = range(2000,2011)
months = ["jan","feb","mar","apr","may","jun","jul","aug","sep","oct","nov","dec"]
variables = ["cwd","ppt","aet","pet","tmn","tmx"] # *variable name* with wildcards
tifnames = list(range(0,(len(years)*len(months)*len(variables)+1) ))
i = 0
for variable in variables:
for year in years:
for month in months:
fullname = str(variable)+str(year)+str(month)+".tif"
tifnames[i] = fullname
i = i+1
运行过滤器(lambda x:’aet’in x,tifnames)或其他答案返回:
Traceback (most recent call last):
File "", line 1, in
func(tifnames,'aet')
File "", line 2, in func
return [i for i in l if s in i]
TypeError: argument of type 'int' is not iterable
尽管tifnames是字符串的列表:
type(tifnames[1])
你们看看这里发生了什么吗?再次感谢!