arrays - 返回数组中数字的总和,忽略数字部分除外
问题描述
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):
if 6 in arr and 9 in arr:
return sum(arr[:arr.index(6)])+sum(arr[arr.index(9):])
else:
total=0
for x in arr:
total+=x
return total
我期望summer_69的输出([4, 5, 6, 7, 8, 9]) --> 9,但实际输出是18。
我期望summer_69的输出([2, 1, 6, 9,11 ]) --> 14,但实际输出为 23
解决方案
您可以通过删除 6 到 9 之间的所有项目(对于所有间隔)并总结剩余列表中的元素来做到这一点。
要删除 6 到 9 之间的部分,您可以使用slice() Function
slice() function
返回一个切片对象。切片对象用于指定如何对序列进行切片。您可以指定切片的开始位置和结束位置。
def summer_69(arr):
while 6 in arr: # while 6 in array
idx6 = arr.index(6)
idx9 = arr.index(9)
del arr[idx6:idx9+1] # delete part of array between index of 6 and index of 9
print (arr) # [4, 5, 1, 1, 4, 3]
return sum(arr)
print (summer_69([4, 5, 6, 7, 8, 9,1,1,6,2,3,9,4,3]))
输出:
18
前任。
print (summer_69([1, 3, 5])) # 9
print (summer_69([4, 5, 6, 7, 8, 9])) # 9
print (summer_69([2, 1, 6, 9, 11])) # 14
推荐阅读
- templates - Intellij 文件模板:如何动态设置文件名
- android - Android 生物识别:IllegalStateException。必须注册至少一项生物特征才能创建需要用户身份验证的密钥
- excel - 将 Sub 作为参数传递
- javascript - 单击父级时触发子级单击事件
- python - Bootstrap 主题不使用烧瓶充电
- flutter - 导航器推送时抛出错误:“!_debugLocked':不正确。”
- javascript - 在 React Native 中使用组件导入获取错误“元素类型无效预期字符串”
- html - 是否有任何维护良好的 Web 约束布局?
- android - 如何在安卓手机中小跑或设置网速?
- javascript - 将 [op.and] 添加到 Sequelize 查询对象