【发布时间】:2017-03-10 14:18:00
【问题描述】:
问题是: 你得到一个正整数的排序数组和一个数字'X'。打印总和等于 X 的所有数字对。仅打印唯一的数字对,并且这些数字对应按升序排列。
input is: 1,2,3,4,6;5
output should be : 1,4;2,3
到目前为止我的代码:
with open('/tmp/values.txt') as f:
for numbers in f:
num_list,sum_list = [ num.split(",") for num in numbers.rstrip().split(";")]
sum_list = list(map(int,sum_list))
op1 = [(num_list[i],num_list[j]) for i in range(0,len(num_list)) for j in range(0,len(num_list)) if (eval(num_list[i])+eval(num_list[j]) == sum_list[0])]
print (op1)
我得到的输出是:
[('1', '4'), ('2', '3'), ('3', '2'), ('4', '1')]
谁能帮我从上面的列表中选择 ('1','4') 和 ('2','3') 的逻辑吗?
【问题讨论】:
标签: python python-2.7 python-3.x ipython