所以我不断收到错误" TypeError:' int'对象是不可取消的"为我的代码。我想要做的是将一个数字作为输入,然后有一个函数首先搜索一个列表,然后搜索该数字的字典。如果该数字在字典中,则返回一些信息。我想我知道为什么弹出错误信息,但是我要求另外一个做我想做的事情。
item1 = {
"name": "Item 1",
"code": 1001,
}
item2 = {
"name": "Item 2",
"code": 1002,
}
item3 = {
"name": "Item 3",
"code": 1003,
}
produce = [item1, item2, item3]
def produce_info_code(x):
print
produce_name = input("Enter Produce code [eg. 1234]: ")
if produce_name["code"] in x:
return "Name: %s" % produce_name["name"], "Code: %s" % produce_name["code]
print produce_info_code(produce)
感谢任何帮助!
答案 0 :(得分:1)
我认为你没有发布你的整个代码,因为据此,你无法得到上述错误。无论如何,实际问题是,input()
的返回值是str
类型,不可订阅。
def produce_info_code(x):
produce_name = int(input("Enter Produce code [eg. 1234]: "))
for dct in x:
if produce_name == dct.get("code")
return "Name: %s" % dct["name"], "Code: %d" % produce_name
return None
答案 1 :(得分:0)
您还可以使用Generator Expressions,如下所示:
def produce_info_code(x):
produce_name = int(input("Enter Produce code [eg. 1234]: "))
return next((("Name: %s, Code: %d" % (item["name"],produce_name)) for item in produce if item["code"] == produce_name),None)