Pythonic way to combine FOR loop and IF statement

后端 未结 10 2375
暗喜
暗喜 2020-11-27 09:02

I know how to use both for loops and if statements on separate lines, such as:

>>> a = [2,3,4,5,6,7,8,9,0]
... xyz = [0,12,4,6,242,7,9]
... for x in         


        
10条回答
  •  轮回少年
    2020-11-27 10:00

    I personally think this is the prettiest version:

    a = [2,3,4,5,6,7,8,9,0]
    xyz = [0,12,4,6,242,7,9]
    for x in filter(lambda w: w in a, xyz):
      print x
    

    Edit

    if you are very keen on avoiding to use lambda you can use partial function application and use the operator module (that provides functions of most operators).

    https://docs.python.org/2/library/operator.html#module-operator

    from operator import contains
    from functools import partial
    print(list(filter(partial(contains, a), xyz)))
    

提交回复
热议问题