具有列表理解的Python嵌套if语句

具有列表理解的Python嵌套if语句,python,nested,list-comprehension,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,则

当您有列表理解时,如何嵌套多个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。 如果未传递任何参数,则将打印列表1的所有元素

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

有什么帮助吗


谢谢

我不认为你的例子是一个好例子,你可以在
列表理解中使用
多个ifs

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

我想,我有一个名为
a
列表,如下所示:

a = [[1, 2, 0], [5, 6, 0], [0, 3, 5]]
我想找出每个子列表的每个元素是否是
奇数
偶数
,然后返回另一个列表,其中包含关于默认列表的新信息

因此,使用
列表理解
多个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']]

如果有,列表用括号括起来(…
不匹配…它还将打印
'x'
,而不是
x
…不是最好的示例,如果只是打印一些结果,那么我不会将其与列表理解混淆。不要仅将列表理解用于副作用。给出的示例不需要嵌套的ifs,因为您不必检查任何([a,b])因为您没有访问它们的任何方法或属性。