Python列表未能添加项
我搞不清楚为什么,总是返回一个空的数组[]。我已经编辑了参数,抱歉。
def in(f, e):
n = len(f)
a = 0
b = 0
c = 0
m = []
for i in range (1, n):
a = 0
for j in range (0, n + 1):
if (e[i - 1] == (j, i)):
a = a + 1
m.append(a)
return m
print(in([1, 2, 3] , [(1, 2), (2, 1), (3, 2)]))
1 个回答
3
for j in range (0, n + 1):
print e[i - 1],
print (j, i)
if (e[i - 1] == (j, i)):
我为了测试加了这两个打印语句,下面是它们的输出结果。(我用的是python 2.7,所以用的是语句而不是函数,但这其实没什么大不了的)
(1, 2) (0, 1)
(1, 2) (1, 1)
(1, 2) (2, 1)
(1, 2) (3, 1)
(2, 1) (0, 2)
(2, 1) (1, 2)
(2, 1) (2, 2)
(2, 1) (3, 2)
你可以看到,e[i - 1]
从来不会等于 (j, i)
,所以它永远不会进入 if
这个代码块,也就不会把任何东西添加到你的列表里,因此列表一直是空的,你的函数返回的就是 []
。
顺便说一下,我还得改一下函数的名字,因为正如评论中提到的,def in(f, e):
会导致语法错误。