入力(リスト)は、に似たリストになり[[1,2],[5,6],[4,6]]
ます。行全体を足し合わせて、偶数か奇数かをテストしようとしています。
def evenrow(list):
for row in list:
for item in row:
newNums+=item
n=sum(newNums)
print(n)
入力(リスト)は、に似たリストになり[[1,2],[5,6],[4,6]]
ます。行全体を足し合わせて、偶数か奇数かをテストしようとしています。
def evenrow(list):
for row in list:
for item in row:
newNums+=item
n=sum(newNums)
print(n)
まず、変数名として「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"
代替方法:
def evenrow(lst):
return sum(map(sum,lst))%2 == 0 #True if even, False otherwise.
これは次のように機能します。
外側は のsum
すべての項目を合計し、 の各項目にmap
適用されます。python2 では map はオブジェクトを返しますが、python3 ではオブジェクトを返します。これは外部関数に渡され、 .sum
lst
list
map
sum
map
def evenrow(lst):
return sum(itertools.chain(*a)) % 2 == 0
これにより、(各サブリスト) 内のすべてのアイテムが展開a
され、chain
オブジェクトとしてチェーン化されます。次に、すべてのアイテムを合計し、合計が偶数かどうかを判断します。
次のコード行は必要ありませんn=sum(newNums)
。行の行のすべての項目をすでに合計しましたnewNums += item
。次に、newNums
コードで使用する前に宣言する必要があります。したがって、コードの修正バージョンは次のようになります。
def evenrow(list):
for row in list:
newNums = 0
for item in row:
newNums += item
print(newNums)
ところで:あなたはあなたの以前の質問のいくつかへの答えを受け入れることを検討するべきです、さもなければ誰もあなたの新しい質問に答えるために彼らの時間を費やすことはありません。