想象一下,有随机的单词列表:从列表中删除所有但某些词(如白名单)
words = ['elephant', 'dog', 'blue', 'sam', 'white', 'red', 'sun', 'moon']
而且我要删除所有,但下面的话(如白名单):
colors = ['red', 'green', 'blue', 'orange', 'white']
我想产生下面的列表(顺序事项):
filtered = ['blue', 'white', 'red']
我想过这样的事情(W这工作很好):
filtered = filter (lambda a: a == 'red' or a == 'green' or a == 'blue' or a == 'orange' or a == 'white', words)
但这是真的最好/最有效的方式?
这种方法使得两个关键假设:1),要么在'words'名单没有按不包含重复项,或者不需要保留,2)“过滤”顺序无关紧要。 –
这是一个有效的观察 –