有条件的列表理解

Aid*_*ner 0 python

我有以下解决方案,但是再次遍历数据以删除满足编译器要求的无意义空白(“”)非常浪费。我希望保持该解决方案的紧凑和内联,如图所示。

我该如何重写它以仅在一个条件下返回值?

ans = [x[0] if x[1]==minimum else " " for x in zip(a,b)]
Run Code Online (Sandbox Code Playgroud)

khe*_*ood 6

列表项支持将谓词包括在内。

我想你要:

ans = [x[0] for x in zip(a,b) if x[1]==minimum]
Run Code Online (Sandbox Code Playgroud)

或者像这样更清晰一些:

ans = [x for (x,y) in zip(a,b) if y==minimum]
Run Code Online (Sandbox Code Playgroud)