1

入力(リスト)は、に似たリストになり[[1,2],[5,6],[4,6]]ます。行全体を足し合わせて、偶数か奇数かをテストしようとしています。

def evenrow(list):
    for row in list:
        for item in row:
            newNums+=item
            n=sum(newNums)
            print(n)
4

3 に答える 3

2

まず、変数名として「list」を使用しないでください。次に、リストではなく int 値の sum を呼び出すため、エラーが発生します。コードを確認してください。

確かではありませんが、コードは次のようになります。

def evenrow(list):
    for row in list:
        value = sum(row)
        if values is even: # put your condition here
            # do something
        else:
            print "Value is odd"
于 2013-03-06T04:19:16.060 に答える
1

代替方法:

def evenrow(lst):
    return sum(map(sum,lst))%2 == 0 #True if even, False otherwise.

これは次のように機能します。

外側は のsumすべての項目を合計し、 の各項目にmap適用されます。python2 では map はオブジェクトを返しますが、python3 ではオブジェクトを返します。これは外部関数に渡され、 .sumlstlistmapsummap

def evenrow(lst):
    return sum(itertools.chain(*a)) % 2 == 0

これにより、(各サブリスト) 内のすべてのアイテムが展開aされ、chainオブジェクトとしてチェーン化されます。次に、すべてのアイテムを合計し、合計が偶数かどうかを判断します。

于 2013-03-06T06:11:28.183 に答える
0

次のコード行は必要ありませんn=sum(newNums)。行の行のすべての項目をすでに合計しましたnewNums += item。次に、newNumsコードで使用する前に宣言する必要があります。したがって、コードの修正バージョンは次のようになります。

def evenrow(list):
    for row in list:
        newNums = 0
        for item in row:
            newNums += item
        print(newNums)

ところで:あなたはあなたの以前の質問のいくつかへの答えを受け入れることを検討するべきです、さもなければ誰もあなたの新しい質問に答えるために彼らの時間を費やすことはありません。

于 2013-03-06T05:31:13.083 に答える