我正在尝试创建一个不允许重复条目的类
class QSet(list):
def __init__(self,*args):
super(QSet, self).__init__(args[0])
self=list(set(self))
并且在尝试测试未删除的类重复条目时
d=["a","b","a","z","a"]
z=QList(d)
print d
print z
任何解决此问题的建议 感谢
答案 0 :(得分:4)
您可以通过对代码进行少量更改来执行您想要的操作:
class QSet(list):
def __init__(self, a):
super(QSet, self).__init__(list(set(a)))
我改变了你如何使用构造函数args,因为它奇怪地接受任意参数,但后来坚持至少有一个,并忽略所有其余的。
答案 1 :(得分:3)
重新分配self
实际上不会更改对象(您只是将标识符self
重新绑定到新对象)。您可以将该行更改为:
self[:] = list(set(self))
答案 2 :(得分:0)
您知道set
正是您正在构建的课程,对吗?
>>> s = set([1,2,3,3,3])
>>> s.add(4)
>>> s
set([1, 2, 3, 4])
>>> s.add(4)
>>> s
set([1, 2, 3, 4])
答案 3 :(得分:0)
Python已经有了一个类。它叫做set
d=["a","b","a","z","a"]
z=set(d)
print d
print z
这对你有用吗?