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))