Python嵌套if具有列表推导的语句

时间:2017-02-27 14:36:43

标签: python nested list-comprehension

如果你有列表理解,你怎么能嵌套多个ifs?

我有这个功能:

@click.command 
@click.option(--a) 
@click.option(--b) 
def func1(a,b): 
  for x in list1:
    if any([a, b]):
      if any(x==a, x==b]):
        print ('x')
    else:
      print ('x')

如您所见,示例函数采用可选参数。 因此,如果将a或b传递给func1,则只打印与a或b匹配的x。 如果没有传递参数,则将打印list1的所有元素。

如何使用嵌套if else语句进行列表理解?

任何帮助?

谢谢

1 个答案:

答案 0 :(得分:0)

我不认为你的例子是multiple ifs list comprehension中使用list of lists的好例子。

否则,您可以查看此示例并对其进行修改以满足您的需求:

我想,我有一个名为a的{​​{1}},就像这样:

a = [[1, 2, 0], [5, 6, 0], [0, 3, 5]]

我想查找每个子列表中的每个元素是oddeven还是zero,然后返回另一个列表列表,其中包含有关我的默认列表列表的新信息。< / p>

所以,使用list comprehensionmultiple ifs,我可以这样做:

final = [["odd" if (k %2 != 0 and k != 0) else "even" if (k%2 == 0 and k!=0) else "zero" for k in j] for j in a ]

print(final)

输出:

>>> [['odd', 'even', 'zero'], ['odd', 'even', 'zero'], ['zero', 'odd', 'odd']]