python:如何获取数组的所有成员,除了匹配条件的数组

时间:2009-09-23 18:51:54

标签: python

我正在尝试创建一个包含所有.asm文件的数组,我需要构建除了,因为它现在给我带来了麻烦。根据Scons "Handling Common Cases"页面

,这就是我所拥有的
projfiles['buildasm'] = 
  ['#build/'+os.path.splitext(x)[0]+'.asm' for x in projfiles['a']];

(这会将'foo.a'形式的路径映射到'#build / foo.asm')

如果数组成员与'baz.a'匹配,我想为projfiles['a'] 的每个成员运行此项,但除外。我怎么能这样做?

1 个答案:

答案 0 :(得分:7)

projfiles['buildasm'] = ['#build/'+os.path.splitext(x)[0]+'.asm' for x in projfiles['a'] if x != 'baz.a']

或更一般地说:

ignored_files = ['baz.a',
                 'foo.a',
                 'xyzzy.a',
                 ]
projfiles['buildasm'] = ['#build/'+os.path.splitext(x)[0]+'.asm' for x in projfiles['a'] if x not in ignored_files]