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)
出力:[3, 9]
奇数を除外することを期待していますが、逆です。
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)
出力:[3, 9]
奇数を除外することを期待していますが、逆です。
このコードはまさに期待どおりの動作をしています。2 番目の項目が偶数の場合は、それを 1 増やしてリストに追加します。
したがって、最初の行では、2 % 2 == 0 が True であることがわかり、col2[0] = 2 + 1 = 3 が設定されます。2 行目では、5 % 2 == 0 が False です。3 行目では、8%2 == 0 が True で、col2[1] = 8 + 1 = 9 です。
== 1
比較をfromに切り替える必要があると思います== 0
。
任意の数値を 2 で割ったときの法は 0 または 1、奇数の場合は 1 です。
M = [[1,2,3],
[4,5,6],
[7,8,9]]
col2 = []
for row in M:
if row[1]%2 == 1:
col2.append(row[1])
print col2
あなたはテストrow[1]%2
していますが、印刷row[1]+1
しているので、偶数ですが、奇数の
場合に結果にrow[1]==2
追加しているので、除外し、偶数の
場合に結果 に追加しています3
row[1]==5
row[1]==8
9