python - 检查一个数字是否是其他两个数字的总和
问题描述
问题陈述
给定一个数字列表和一个数字k,返回列表中的任意两个数字加起来是否为k。
例子
给定[1, 2, 3]
和k = 5
,return True
因为2 + 3 = 5
。
这是我试图做的:
def pairs(n):
for i in range(len(n)):
for j in range(i+1, len()):
yield n[i], n[j]
def ListCheck():
number = input("Give me a number:")
val = int(number)
nums = [1,2,3]
for i, j in pairs(nums):
if j + i == val:
print(True)
break
ListCheck()
我运行它时遇到错误,我不明白为什么。
解决方案
您也可以这样做itertools.combinations
,比@bitto 的解决方案短一点:
import itertools
def f(lst,num):
for x,y in itertools.combinations(lst,2):
if x+y==num:
return True
return False
lst=[1,2,3]
num=int(input("Give me a number: "))
print(f(lst,num))
推荐阅读
- sql - 为什么我的游标没有返回第一行值?
- laravel - Laravel Passport API 总是从前端返回 401 未授权
- assembly - 获取带有地址的控制流图,如程序集中所示
- python - 从 yelp 抓取评论总是返回第一页
- ansible - 在 kibana 状态端点上使用 ansible uri 模块时出错
- maxscript - 添加多个按钮和可见属性时的用户控件问题
- c# - 当安排大量 CPU 密集型工作时,.Net 线程池是否提供任何机制来避免 I/O 性能下降?
- excel - 具有多列和多行的 Vlookup
- java - Dockerize Spring Boot mongo
- matlab - matlab:内存不足,可召开会议的个人电脑