我有一个程序,其中包含一个充满列表的保存文件。它通过制作列表来加载项目。它也从文件中获取名称。因为我不能“解串”字符串所以我把名字作为键。完成使用该程序后,我的问题是重新保存列表。我似乎无法访问列表中的内容将它们写入文件。我有另一个带键的列表,所以我可以访问名称。
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'。无论如何要解决这个问题吗?
答案 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'你得到了关键错误。