过滤奇数

3zz*_*zzy 2 python list-comprehension modulo

M = [[1,2,3],
     [4,5,6],
     [7,8,9]]

col2 = [row[1] + 1 for row in M if row[1] % 2 == 0]
print (col2)
Run Code Online (Sandbox Code Playgroud)

输出: [3, 9]

我期待它能过滤掉奇数,但事实恰恰相反.

Dan*_*l G 6

代码完全按照您的预期执行 - 如果第二项是偶数,则将其增加一并将其放入列表中.

因此,对于第一行,它看到2%2 == 0为True,并设置col2 [0] = 2 + 1 = 3.对于第二行,5%2 == 0为False.对于第三行,8%2 == 0为True,col2 [1] = 8 + 1 = 9.