2
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]

奇数を除外することを期待していますが、逆です。

4

4 に答える 4

6

このコードはまさに期待どおりの動作をしています。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 です。

于 2009-11-12T04:46:45.473 に答える
2

== 1比較をfromに切り替える必要があると思います== 0

任意の数値を 2 で割ったときの法は 0 または 1、奇数の場合は 1 です。

于 2009-11-12T04:50:48.307 に答える
0
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
于 2009-11-12T05:02:01.330 に答える
0

あなたはテストrow[1]%2していますが、印刷row[1]+1
しているので、偶数ですが、奇数の 場合に結果にrow[1]==2追加しているので、除外し、偶数の 場合に結果 に追加しています3
row[1]==5
row[1]==89

于 2009-11-12T04:50:27.293 に答える