繁体   English   中英

python:“ dict”对象没有属性“ has_key”

[英]python: 'dict' object has no attribute 'has_key'

我有这段代码:

def separate_sets(self):
    self.groups = {}
    self.group_names = list(set(self.y))
    if len(self.group_names) > 2:
        print ('more than two classes provided...exiting')
        sys.exit()
    #putting all the samples in a regular order so that their
    #grouping can be easier.
    combined  = sorted(zip(self.x, self.y), key = lambda n: n[1])
    #--doing val,key here because (x,y) was zipped
    for val,key in combined:
        if self.groups.has_key(key):
            self.groups[key].append(val)
        else:
            self.groups[key] = []
            self.groups[key].append(val)
    #train on each group
    self.train()

而且我收到以下错误消息:

如果self.groups.has_key(key):

AttributeError:'dict'对象没有属性'has_key'

在Python 3.x中, has_key()已删除,请参阅文档 因此,您必须使用in ,这是pythonic的方式:

if key in self.groups:

在python中,您可以使用“ in”来检查

 if key in self.groups:

您可以使用setdefault方法消除整个if语句

    self.groups.setdefault(key, []).append(val)

python 3.x版本开始,has_key已被删除 ,现在您必须使用in运算符

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM