用Python写一个程序,输入一组数到列表nums,请找出列表中任意两个元素相加等于9的元素,形成一个元组,其实小的数在前,如:(2,7)。重复的元组元素只保留一个,结果按元组第一个元素从小到大顺序输出。样例输入:3,4,5,7,2,8,1。样例输出:[(1,8),(2,7),(4,5)]
时间: 2023-05-20 08:07:04 浏览: 159
以下是Python程序的代码:
```
nums = [3, 4, 5, 7, 2, 8, 1]
result = set()
for i in range(len(nums)):
for j in range(i+1, len(nums)):
if nums[i] + nums[j] == 9:
result.add((min(nums[i], nums[j]), max(nums[i], nums[j])))
print(sorted(list(result)))
```
输出结果为:
```
[(1, 8), (2, 7), (4, 5)]
```
这个程序使用了两个嵌套的循环来遍历列表中的所有元素对,如果两个元素的和等于9,则将它们组成一个元组,并添加到结果集合中。最后将结果集合转换成列表,并按照元组第一个元素从小到大排序输出。
相关问题
用Python写一个程序,输入一组数到列表nums,请找出列表中任意两个元素相加等于9的元素,形成一个元组,其实小的数在前,如:(2,7)。重复的元组元素只保留一个,结果按元组第一个元素从小到大顺序输出]
以下是Python代码:
```python
nums = [1, 2, 3, 4, 5, 6, 7, 8, 9]
result = set()
for i in range(len(nums)):
for j in range(i+1, len(nums)):
if nums[i] + nums[j] == 9:
result.add((min(nums[i], nums[j]), max(nums[i], nums[j])))
print(sorted(result))
```
输出结果为:[(1, 8), (2, 7), (3, 6), (4, 5)]
python输入一组数到列表,找出列表中任意两个数字相加等于9的元素,形成一个元组,使其小数在前大数在后。重复的元组元素只保留一个,结果按元组第一个元素从小到大顺序输出。比如输入:3,4,5,7,2,8,1。输出:【(1,8),(2,7),(4,5)】
可以使用双重循环遍历列表,找出任意两个数字相加等于9的元素,然后将它们形成一个元组,如果这个元组没有出现过,则加入结果列表中。最后对结果列表按第一个元素从小到大排序即可。
代码如下:
```python
nums = input("请输入一组数字,以逗号分隔:").split(",")
nums = [int(num) for num in nums]
result = []
for i in range(len(nums)):
for j in range(i+1, len(nums)):
if nums[i] + nums[j] == 9:
pair = (min(nums[i], nums[j]), max(nums[i], nums[j]))
if pair not in result:
result.append(pair)
result.sort()
print(result)
```
运行结果:
```
请输入一组数字,以逗号分隔:3,4,5,7,2,8,1
[(1, 8), (2, 7), (4, 5)]
```
阅读全文