Python列表不会将项目附加到列表中

时间:2014-03-28 13:41:41

标签: python list append

无法弄清楚为什么,帮助赞赏。它每次只返回[]。用参数编辑,对不起。

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 个答案:

答案 0 :(得分: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):会产生一个SyntaxError。