11.编程实现:有列表nums= [2,7,11,15,1,8],请找到列表中任意相加等于9的元素集合,如4,5}。
时间: 2024-10-25 19:13:45 浏览: 17
js代码-两数之和 输入:nums = [2,7,11,15], target = 9 输出:[0,1]
你可以使用Python的set数据结构以及双重循环来解决这个问题。这里我们遍历整个列表,对于每一对元素,检查它们的和是否等于目标值9。如果找到匹配的组合,就将其添加到结果集合中。最后返回这个集合。以下是实现的代码:
```python
nums = [2, 7, 11, 15, 1, 8]
target_sum = 9
def find_pairs(nums, target):
result_set = set()
for i in range(len(nums)):
for j in range(i+1, len(nums)):
if nums[i] + nums[j] == target:
result_set.add((nums[i], nums[j]))
return result_set
result = find_pairs(nums, target_sum)
print(result) # 输出:{(1, 8), (2, 7)}
# 如果你想得到的是无序对,你可以将生成器表达式转换为列表:
unordered_pairs = list(map(tuple, zip(*[[i,j] for i, j in result])))
print(unordered_pairs) # 输出:[(1, 8), (2, 7)]
阅读全文