函数的综合运用

1.编写一个函数,在一个列表中找到所有和为指定值的数对。

函数名为: find_pairs_with_sum;

列表为:[1, 2, 3, 4, 5, 6];

指定值:target = 7


 * 步骤一:定义函数并初始化一个空列表和空集合。

def find_pairs_with_sum(lst,target):
    pairs = []
    seen = set()

 * 步骤二:遍历列表中每个数字。

    for number in lst:

 * 步骤三:计算补数,使得   x + y = target。

        complement = target - number

* 步骤四:如果补数在集合 seen中,说明找到了一个和为target 数对;然后将这个数对添加到pairs列表中。

        if complement in seen:
            pairs.append((complement,number))

* 步骤五:将当前数字添加到集合 seen中,以便后续查找;并返回所有找到的数对。

        seen.add(number)
    return pairs

* 步骤六:打印输出函数。

print(find_pairs_with_sum([1, 2, 3, 4, 5, 6],7))


总代码放在这了:
def find_pairs_with_sum(lst,target):
    # 初始化一个空列表
    pairs = []

    # 空集合
    seen = set()
    # 遍历列表中每个数字
    for number in lst:
        #计算补数,使得   x + y = target_sum
        complement = target - number
        # 如果补数在集合 seen中,说明找到了一个和为target 数对
        if complement in seen:
            # 将这个数对添加到pairs列表中
            pairs.append((complement,number))
        # 将当前数字添加到集合 seen中,以便后续查找
        seen.add(number)
    # 返回所有找到的数对
    return pairs



print(find_pairs_with_sum([1, 2, 3, 4, 5, 6],7))
结果:
总结:解这种题最重要的还是思路,多培养一下自己的思路,思路对了,一下就明朗了。QvQ
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值