搜索列表/字典中的关键错误

问题描述 投票:-1回答:1

遇到一些非常简单的问题……请帮助我找出错误。

fileA.py

big_dict = {
    "iAmKeyA" : "iAmValueA",
    "iAmKeyB" : "iAmValueB",
    "iAmKeyC" : "iAmValueC",
    "iAmKeyD" : "iAmValueD",
    "iAmKeyE" : "iAmValueE",
    "iAmKeyF" : "iAmValueF"
}

def getValue(keyName):
    return big_dict[keyName]

mainFile.py

import fileA

otherList = [["iAmKeyB", 123, 456], ["iAmKeyA", 321, 654], ["iAmKeyC", 911, 110]]

for listItem in otherList:
    print(fileA.getValue(listItem[0]))

为什么我尝试打印KeyError: iAmKeyB的值时会得到otherList?如果big_dict是嵌套字典,我什至会得到TypeError: 'NoneType' object is not subscriptable

如果我尝试不使用for循环,它可以返回其值。

print(fileA.getValue("iAmKeyB"))

我已经检查了返回值的类型。它们都是字符串。

python list dictionary typeerror keyerror
1个回答
0
投票
它对我有用。

big_dict = { "iAmKeyA" : "iAmValueA", "iAmKeyB" : "iAmValueB", "iAmKeyC" : "iAmValueC", "iAmKeyD" : "iAmValueD", "iAmKeyE" : "iAmValueE", "iAmKeyF" : "iAmValueF" } def getValue(keyName): return big_dict[keyName] otherList = [["iAmKeyB", 123, 456], ["iAmKeyA", 321, 654], ["iAmKeyC", 911, 110]] for listItem in otherList: print(getValue(listItem[0]))

输出

iAmValueB iAmValueA iAmValueC


0
投票
通过以上设置为我工作

➜ cat fileA.py big_dict = { "iAmKeyA" : "iAmValueA", "iAmKeyB" : "iAmValueB", "iAmKeyC" : "iAmValueC", "iAmKeyD" : "iAmValueD", "iAmKeyE" : "iAmValueE", "iAmKeyF" : "iAmValueF" } def getValue(keyName): return big_dict[keyName] ➜ cat mainFile.py import fileA otherList = [["iAmKeyB", 123, 456], ["iAmKeyA", 321, 654], ["iAmKeyC", 911, 110]] for listItem in otherList: print(fileA.getValue(listItem[0]))

➜  python mainFile.py
iAmValueB
iAmValueA
iAmValueC
© www.soinside.com 2019 - 2024. All rights reserved.