【发布时间】:2022-04-18 09:56:17
【问题描述】:
我是 Python 的新手,为了变得更好,我已经学习了多个教程。
我一直在解决一个难题并找到了解决方案。但感觉,作品很像新手。我认为我已经对其进行了定制以回答具体问题。
所以问题是:
SUMMER OF '69:返回数组中数字的总和,除了忽略以 6 开头并延伸到下一个 9 的数字部分(每个 6 后面至少有一个 9)。没有数字则返回 0。
summer_69([1, 3, 5]) --> 9
summer_69([4, 5, 6, 7, 8, 9]) --> 9
summer_69([2, 1, 6, 9, 11]) --> 14
我解决这个问题的代码是:
def summer_69(arr):
list1 = arr
summ = int()
for i in range(0, len(arr)):
if 6 in list1:
listOfRange = range(list1.index(6), list1.index(9) + 1)
for index in listOfRange:
print(listOfRange)
arr[index] = 0
if 6 != arr[i]:
summ += arr[i]
else:
continue
else:
summ += arr[i]
return summ
这是一个非常基本的问题,我非常警觉我已经在与这样的事情作斗争。
【问题讨论】:
-
这似乎是正确的(尽管效率很低)。你得到什么错误的输出?
-
del summer_69[summer_69.index(6):summer_69.index(9)+1] ;总和(summer_69)
-
@splash58 不考虑是否在第一个 6 之前出现 9
-
index6 = summer_69.index(6); index9 = summer_69[index6:].index(9);del summer_69[index6:index9+1] ;总和(summer_69)
-
@Ruzihm 是的,应该是
summer_69[index6:index6+index9+1]
标签: python