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

时间:2013-07-03 21:56:08

标签: python python-2.7

我有一本字典

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

我希望得到State值,所以我使用title_data['1']._getitem_(1)并得到一个keyerror,即使我检查了那个密钥在字典中。

2 个答案:

答案 0 :(得分:0)

title_data['1']已经在字典中为您提供了'1'的值:列表。使用title_data['1'][1]获取第二个元素。

>>> 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)或类似的事情。

答案 1 :(得分:0)

如果您执行:

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]