输入(列表)将是类似于[[1,2],[5,6],[4,6]]
的列表。我试图将整行添加到一起来测试它是偶数还是奇数。
def evenrow(list):
for row in list:
for item in row:
newNums+=item
n=sum(newNums)
print(n)
答案 0 :(得分: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"
答案 1 :(得分:1)
只是另一种方法:
def evenrow(lst):
return sum(map(sum,lst))%2 == 0 #True if even, False otherwise.
这是这样的:
外部sum
将map
的所有项目相加,sum
将lst
应用于list
中的每个项目。在python2中,map返回一个map
对象,而在python3中,它返回一个sum
对象。这会传递到外部map
功能,该功能会累计def evenrow(lst):
return sum(itertools.chain(*a)) % 2 == 0
中的所有项目。
a
这会扩展chain
(每个子列表)中的所有项目,并将它们链接在一起,作为{{1}}对象。然后它将所有项目加在一起,并确定总和是否均匀。
答案 2 :(得分:0)
您不需要以下代码行:n=sum(newNums)
。您已经在newNums += item
行总结了所有行项。其次,在代码中使用它之前,必须声明newNums
。因此,固定版本的代码将如下所示:
def evenrow(list):
for row in list:
newNums = 0
for item in row:
newNums += item
print(newNums)
顺便说一句:你应该考虑接受以前的一些问题的答案,否则没有人会花时间回答你的新问题。