我正在尝试创建一个不允许重复条目的类
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
任何解决这个问题的建议谢谢
我正在尝试创建一个不允许重复条目的类
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
任何解决这个问题的建议谢谢
您可以通过对代码稍作更改来做您想做的事情:
class QSet(list):
def __init__(self, a):
super(QSet, self).__init__(list(set(a)))
我改变了你使用构造函数 args 的方式,因为它很奇怪接受任意参数,但坚持至少有一个,而忽略所有其他参数。
重新分配self
实际上并不会更改对象(您只是将标识符重新绑定self
到新对象)。您可以将行更改为:
self[:] = list(set(self))
你知道这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])
Python中已经有一个类。它被称为集
d=["a","b","a","z","a"]
z=set(d)
print d
print z
这对你有用吗?