蟒蛇: '字典' 对象有没有属性 '对象的has_key'
我有这样一段代码:蟒蛇: '字典' 对象有没有属性 '对象的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()
我收到以下错误信息:
if self.groups.has_key(key):
AttributeError: 'dict' object has no attribute 'has_key'
在Python中你可以使用“在”检查
if key in self.groups:
在Python 3.x中,has_key()
被删除,请参阅。因此,你必须使用in
,这是Python的方式:
if key in self.groups:
截至python 3.x has_key was removed,现在你必须使用在运营商
您没有看到其他2个相同内容的答案? –
@cᴏʟᴅsᴘᴇᴇᴅ发布的时间与ÓscarLópez的答案相同;) –
您可以通过使用setdefault
方法
if
声明
self.groups.setdefault(key, []).append(val)
哦,你的意思是整个'if'到'else'? –
是的。如果'key'不在'dict'中,'setdefault'返回对'self.groups [key]'的引用,或'']'。无论哪种方式,您都可以在结果列表中添加“val”。 – chepner
怎么样的错误不清楚? ['has_key'已被弃用](https://docs.python.org/2/library/stdtypes.html#dict.has_key)。你有没有使用Python 3? –