python - 有什么方法可以减少“嵌套”吗?
问题描述
问题是家庭作业问题。我想我解决了它,但我想知道这是最好的解决方案吗?问题是获取一个列表并遍历它,看看它是否包含特定的子序列:007。这里的子序列是在数学意义上使用的(所以 0110227确实包含 007 并返回 True)。
def spy_game(nums):
if 0 in nums:
a_1=nums.index(0)
nums_1=nums[a_1+1:]
if 0 in nums_1:
a_2=nums_1.index(0)
if 7 in nums[a_2+1:]:
return True
else:
return False
else:
return False
else:
return False
解决方案
从否定你的测试条件开始,这样你就可以简单地早点返回。最后一个测试根本不需要if
语句,因为此时条件的结果就是函数的返回值。
def spy_game(nums):
if 0 not in nums:
return False
a_1 = nums.index(0)
nums_1 = nums[a_1+1:]
if 0 not in nums_1:
return False
a_2 = nums_1.index(0)
return 7 in nums[a_2+1:]
推荐阅读
- unity3d - 如何将 AR 应用到视频直播中?
- reactjs - 如何创建没有任何覆盖的 React Modal?
- python - Python Pandas Dataframe - 如何按年份分组并汇总表中的多个列
- java - Amazon SES 电子邮件收听架构 - 评论
- xcode - 如何成功集成 react-native-text-detector?
- streaming - 如何在 swiftui 中使用实时摄像头流?
- html - 使用预定义的 const 字符串
- node.js - Axios 的 POST 请求未向我的服务器发送数据
- .net - .Net MVC ViewData、VIewBag、TempData
- python - 在浮点上使用 f 字符串格式打印 - 无法获得输出的生成方式