这是写得更简单的问题:
我正在尝试编写一个函数,该函数接受一个整数列表,如果顺序包含007,则返回True。序列0、0、7不一定必须以连续顺序出现在数组中才能返回True。例如,spy_game([1,0,2,4,0,5,7])应该返回True。
但是,我需要指导,因为它无法按以下方式工作。
def spy_game(nums):
for x in range(0,len(nums)):
first_0=nums.index(0)
second_0=nums.index(0)
seven=nums.index(7)
if first_0!=second_0 and first_0<second_0 and nums[first_0:second_0+1]!=seven and seven>second_0:
return True
else:
return False
以我尝试完成本练习的方式来修改我的代码的任何帮助都将非常有用。
谢谢。
编辑-根据此处的反馈,我将代码修改如下:
def spy_game(nums):
for x in range(0,len(nums)):
first_0=nums.index(0)
second_0=nums.index(0, first_0+1)
seven=nums.index(7)
if nums[first_0:second_0+1]!=seven and seven>second_0:
return True
else:
return False
这可行。
问题来源:stackoverflow
所写的.index两次将找到相同的零。.index
需要偏移量才能开始查找,因此请在第一个零之后开始一个:
first_0 = nums.index(0)
second_0 = nums.index(0,first_0 + 1)
回答来源:stackoverflow
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。