如何通过密钥访问列表?

时间:2015-05-21 02:50:03

标签: python string list dictionary key

我有一个程序,其中包含一个充满列表的保存文件。它通过制作列表来加载项目。它也从文件中获取名称。因为我不能“解串”字符串所以我把名字作为键。完成使用该程序后,我的问题是重新保存列表。我似乎无法访问列表中的内容将它们写入文件。我有另一个带键的列表,所以我可以访问名称。

ListKey = {1:'Food', 2:'Veggie'}
List={'Food':['apple','pear','grape'], 'Veggies':['carrot','Spinach','Potato']}

file.write(ListKey[1]) #works fine
currentList=ListKey[1]
file.write(List[currentList[1]]) #Doesn't Work

当我尝试上面的代码时,我得到一个关键错误,我知道它正试图在食物中写'o'。无论如何要解决这个问题吗?

3 个答案:

答案 0 :(得分:4)

看起来您正在尝试访问密钥对中的值。试试:

List[currentList][0] to access 'apple'
List[currentList][1] to access 'pear'

等...

或者,如果你想要所有的值,它看起来像

List[currentList]  or 
List['Food']

希望这会有所帮助,只需要了解如何访问内部列表的语法。

编辑: https://docs.python.org/2/tutorial/datastructures.html#nested-list-comprehensions (添加了数据结构文档的链接)

答案 1 :(得分:1)

currentList[1]只是值o,请使用:

file.write(List[currentList])

答案 2 :(得分:0)

ListKey = {1:'Food', 2:'Veggie'} List={'Food':['apple','pear','grape'], 'Veggies': ['carrot','Spinach','Potato']} currentList = ListKey[1] #'Food' currentList[1] # 'o'

您实际上正在索引字符串" Food"。因此currentList [1]是' o'。由于List没有密钥' o'你得到了关键错误。