函数返回不完整值
问题描述:
def sum_2_array(list1):
item = 10
numlist = list()
for i in list1:
num = list1.pop()
diff = item-num
if diff in list1:
return num, diff
print sum_2_array([2,3,5,8,7])
该函数计算数组元素之间的最小绝对差值。错误是它只返回一个值。 可以anayone请检查并告诉我哪里出错了函数返回不完整值
答
请运行下面的代码&看看它是否工作。我用简单的逻辑您在正在运行
def sum_2_array(list1):
item = 10
j = 0
for i in list1:
print "this is value of J = ", j
num = list1[j]
print "this is value of num = ", num
diff = item - num
print "this is vale of diff = ", diff
if diff in list1:
print num
print diff
j += 1
print sum_2_array([2, 3, 5, 8, 7])
代码,当涉及到第三个项目列表中即5.从列表弹出此项目的同时。因为你正在使用list1.pop()。所以它无法在列表中找到5,这就是为什么你只能得到两个值。使用我给的代码&检查它是否有效。
我得到下面的结果从
this is value of J = 0
this is value of num = 2
this is vale of diff = 8
2
8
this is value of J = 1
this is value of num = 3
this is vale of diff = 7
3
7
this is value of J = 2
this is value of num = 5
this is vale of diff = 5
5
5
this is value of J = 3
this is value of num = 8
this is vale of diff = 2
8
2
this is value of J = 4
this is value of num = 7
this is vale of diff = 3
7
3
请[编辑]你的问题和解决缩进。这不是有效的Python代码。 – 2016-02-29 08:05:33
您对给定列表期望的结果是什么? – 2016-02-29 08:06:00
对我来说,它打印'(7,3)',所以它似乎工作。 – Derlin