-4
class database(object):
    def __init__(self):
        self.l = []


    def insert(self, e):
        for i in range[len(self.l)]:
            if i == e: return
        self.l.append(e)

为什么插入给我一个未绑定的方法,有人可以帮忙吗?

4

2 回答 2

3

你不需要一个循环,你可以这样做:

def insert(self, e):
    if e not in self.l:
        self.l.append(e)

或者,如果您只是想确保没有重复;使用 a set,它是唯一项的无序集合;并且您不能在其中重复:

>>> s = set()
>>> s.add(1)
>>> s.add(2)
>>> s.add(1) # Note, no error message on duplicate
>>> s.add(4)
>>> s
set([1, 2, 4])
于 2013-05-22T08:37:21.640 回答
2

原因是因为你的错字:

range[len(self.l)]

应该

range(len(self.l))

您使用括号()来调用函数。括号[]用于列表和其他功能,例如切片。

于 2013-05-22T08:35:22.237 回答