使用_getitem_()函数访问字典中的列表时出现keyerror



我有一本字典

title_data = {'1':['City','State','Town']}

我想得到State值,所以我使用title_data['1']._getitem_(1),得到一个keyerror,尽管我检查了,而且那个键在字典里。

title_data['1']已经为您提供了字典中"1"的值:列表。使用CCD_ 3得到第二个元素。

>>> title_data = {'1':['City','State','Town']}
>>> title_data['1'][1]
'State'

它的拼写是__getitem__(两边都有双下划线;_getitem_会给你AttributeError)。你可能永远不需要使用它(这就是下划线的作用),但如果你这样做了,它会完美地工作:

>>> title_data['1'].__getitem__(1)
'State'

我不知道你是怎么得到KeyError的;也许你做了title_data[1].__getitem__(1)或类似的事情。

如果执行:

title_data = {'1':['City','State','Town']}
title_data['1']._getitem_(1)

在python 2.7中,您会得到一个AttributeError,因为title_data['1']返回的列表没有方法_getitem_

您缺少下划线:__getitem__():

title_data = {'1':['City','State','Town']}
title_data['1'].__getitem__(1)

有效,当然更常用的也是如此

title_data = {'1':['City','State','Town']}
title_data['1'][1]

最新更新