python - IF-Else 单行理解
问题描述
这是我的代码示例:
True
如果 3 后跟 3,则返回,否则返回下面False
的代码就像一个魅力
def has_33(nums):
for i in range(len(nums)-1):
if (nums[i] ==3) and (nums[i+1] ==3):
return True
return False
has_33([1, 3, 3])
下面的代码也可以工作:
def has_33(nums):
return any([(nums[i] ==3) and (nums[i+1] ==3) for i in range(len(nums)-1)])
当我尝试对这段代码进行单行理解时,它不起作用:
def has_33(nums):
return True if (nums[i] ==3) and (nums[i+1] ==3) else False for i in range(len(nums)-1)
has_33([1, 3, 3])
我只是想知道为什么它不起作用以及如何解决它。
解决方案
展开列表理解代码,
def has_33(nums):
for i in range(len(nums) - 1):
if (nums[i] == 3) and (nums[i+1] == 3):
return True
else:
return False
循环将在第一次迭代后返回。
推荐阅读
- http - 请求计数的增加以“错误:套接字挂起”结束
- c# - 在 collection 上查找特定项目
- batch-file - 批处理文件将文本文件的最后 n 行复制到新的文本文件中
- outlook-restapi - Outlook REST API 正在为消息中的事件返回 404
- mysql - 将 MySQL 数据作为 OBJECT 而不是 ARRAY (Knex) 返回
- java - Google Play 游戏排行榜不刷新
- mongodb - 错误:exec:“/usr/local/bin/docker-entrypoint.sh”:stat /usr/local/bin/docker-entrypoint.sh:权限被拒绝
- react-native - 无法运行项目
- bash - 等待 Bash IO 重定向中的 subshell
- regex - Smarty:为什么 regex_replace 在标签中使用类时不起作用?