python - 我怎样才能返回 1 else 0
问题描述
**我有这个函数,如果其中任何两个数字的总和等于列表中的另一个数字,则该函数返回 1:**
def two_sum(numbers:list ,k:int) -> int:
return (1 for x in numbers for y in numbers if x+y==k)
现在我想返回 0 如果这些数字的总和不等于 k ,所以我尝试过这种方式
def two_sum(numbers:list ,k:int) -> int:
return (1 for x in numbers for y in numbers if x+y==k else 0)
**但我不断收到无效的语法错误。有什么帮助吗?**
解决方案
您只需将 if 更改为理解的开头
def two_sum(numbers:list ,k:int) -> int:
return (1 if x+y==k else 0 for x in numbers for y in numbers)
当您if
在理解结束时使用时,只是检查是否将元素添加到结果中。
理解的开始是通过if
语句检查元素,如果条件为 True,则返回值,否则返回else
值。
推荐阅读
- ringcentral - 参数 [extensionId] 问题
- flutter - 我想在颤动中更改焦点 otp 文本字段的单个元素的颜色
- macos - :cached 和 :delegated 在 OSX 中挂载的卷性能
- javascript - 如何在 selenium java 中设计一个逻辑以根据问题在 2 个不同的路径之间切换
- c - FreeType 颜色渲染 FT_Load_Glyph 返回“未实现的功能”
- wpf - 将 XML 输入 XAML/PowerShell WPF 表单
- python - 拆分 Pandas 数据框
- cucumber - 黄瓜标签:类型不匹配:无法从 String[] 转换为 String
- jquery - Django 和 AJAX - replaceWith 不替换我的元素,它正在添加它而不是删除原始元素
- sql-server - 如何在维度表中查找未使用的行