删除符合Python中逻辑条件的列表元素

mma*_*123 0 python grep list

我在'inner'中有如下arcpy(arcmap)列出的文件名.

inner = [u'aet1941jan.asc', u'aet2004jun.asc', u'aet1981nov.asc', u'aet1985feb.asc', u'aet1974sep.asc', u'aet1900sep.asc', u'aet1994apr.asc', u'aet1970nov.asc']
Run Code Online (Sandbox Code Playgroud)

我正在寻找一种方法来只提取1990年以后的栅格.如何构建一个逻辑表达式,从列表中删除所有旧栅格的所有元素?

这样输出就是一个列表:

out = [u'aet2004jun.asc', u'aet1994apr.asc']
Run Code Online (Sandbox Code Playgroud)

Mar*_*ers 6

列表理解最简单:

out = [v for v in inputlist if int(v[3:7]) >= 1990]
Run Code Online (Sandbox Code Playgroud)

请注意,您不能命名变量in; 我inputlist改用了.

以上假设字符3到6始终是您的值中的年份.

  • 你可以通过`int(re.sub('[^ 0-9]','',v)或0)> = 1990来更安全 (2认同)