返回数组中除数字13以外的所有数字的总和

  • 本文关键字:数字 数组 返回 arrays list
  • 更新时间 :
  • 英文 :


返回数组中数字的总和,对于空数组返回0。除了数字13非常不吉利,所以它不算数,紧跟在13后面的数字也不算数。

我的代码:

def sum13(nums):
sum1 = 0
for i in nums:
sum1 += i
if 13 in nums:
ind = nums.index(13)
if ind == len(nums)-1:
sum13 = sum1 - 13 
else:
sum13 = sum1 - 13 -nums[ind+1]
return sum13
else:
return sum1

失败

nums= [1, 2, 13, 2, 1, 13]

对于您的列表,如果您想找到除13之外的所有数字的总和,请尝试:

sum( i for i in nums if i!=13)

现在,如果你想在到达列表中的前13个时停止求和,请尝试:

sum( i for i in nums[:nums.index(13)]  if i!=13)

现在要从求和中排除13和之后的数字,请尝试:

def sum13(nums):
if nums[-1] == 13:
return sum([nums[0]] + [nums[i] for i in range(len(nums)) if (nums[i] != 13 and nums[i-1] !=13)])
else:
return sum([nums[i] for i in range(len(nums)) if (nums[i] != 13 and nums[i-1] !=13)])
def sum13(nums):
sum=0
for i in range(len(nums)):
if nums[i]!=13:
sum+=nums[i]
elif i<len(nums)-1:
if nums[i+1]!=13:
sum-=nums[i+1]

return sum

最新更新