python元素排序问题

定义一个名为的函数,该函数接受一个整数列表和一个目标值作为参数。该函数应该返回一个由唯一的已排序的2元素元组组成的有序列表,其中元组中的每个值都来自参数列表,并且两个元组元素的和等于参数目标总数。get_pair_sum (numbers_list target_total)
注意:
参数列表可能包含重复的值。
.形参列表中每一对相加为总和的值应该只在元组列表中出现一次。例如,如果参数列表为[3,2,1,1,3],目标总数为4,那么输出的元组列表将只包含唯一的元组(1,3),而不包含元组(3,1)。
.元组列表必须按升序排列.
每个元组必须是升序的(例如(1,3)而不是(3,1))。

img

def get_pair_num(numbers_list:list, target_total:int)->list:
    res = []
    for i in range(len(numbers_list)):
        num = target_total - numbers_list[i]
        if num in numbers_list[i+1:]:
            res.append(tuple(sorted([numbers_list[i],num])))
    return sorted(list(set(res)))

result = get_pair_num([4,6,2,7,3,2,3,7,5,5],10)
print(type(result))
print(result)
print(type(result[0]))
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632