首页 > 解决方案 > 检查一个数字是否是其他两个数字的总和

问题描述

问题陈述

给定一个数字列表和一个数字k,返回列表中的任意两个数字加起来是否为k

例子

给定[1, 2, 3]k = 5return 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()

我运行它时遇到错误,我不明白为什么。

标签: python

解决方案


您也可以这样做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))

推荐阅读