【发布时间】:2020-11-29 20:31:14
【问题描述】:
我想编写一个 python 程序,如果最后一个元素是 -1,则给定用户输入列表打印 -1,然后如果列表中的任何元素包含不应计数的 -1 和剩余数组总和。
例如:
1) list=[1,2,3,4,5] ans should be 15
2) list=[1,2,3,4,-1] ans should be -1
3) list=[1,2,-1,4,5] ans should be 12 ignoring "-1"
我尝试了 2 种解决方案,但都没有奏效。
import sys
def totalcost(ar):
if ar[-1]==-1:
return -1
else:
summ=0
for elem in ar:
if(ar[elem]==-1):
ar.remove(elem)
summ=summ+elem
else:
summ=summ+elem
return summ
if __name__=='__main__':
ar_city=input()
ar=list(map(int,input().strip().split()))
result=totalcost(ar)
print(result)
import sys
def totalcost(ar):
if ar[-1]==-1:
return -1
else:
summ=0
for elem in ar:
if(ar[elem]<0):
ar_new=ar.remove(elem)
for i in ar_new:
summ=summ+i
else:
summ=summ+elem
return summ
if __name__=='__main__':
ar_city=input()
ar=list(map(int,input().strip().split()))
result=totalcost(ar)
print(result)
【问题讨论】:
-
“没有工作” - 请准确描述出了什么问题。如果您收到错误,请包含完整的错误回溯。如果你得到一些错误的输出,包括测试用例,你得到的输出与预期的输出。另外,最好只包含一段代码。
-
这里你做错了什么 if(ar[elem]
-
简单完成,您可以遍历列表并将当前元素添加到预定义的 sum 变量(如果它不是负数)