在调用列表中的字典中的值时收到“TypeError:列表索引必须是整数或切片,而不是字典”
Posted
技术标签:
【中文标题】在调用列表中的字典中的值时收到“TypeError:列表索引必须是整数或切片,而不是字典”【英文标题】:receiving "TypeError: list indices must be integers or slices, not dict" when calling a value within a dictionary within a list 【发布时间】:2021-12-15 00:39:20 【问题描述】:我有以下代码用于无声拍卖程序练习:
bidding = 1
entry_dictionary =
entries_list = []
while bidding:
entry_dictionary =
name = input("What is your name?\n")
bid = int(input("What's your bid?\n$"))
entry_dictionary["name"] = name
entry_dictionary["bid"] = bid
entries_list.append(entry_dictionary)
print(entries_list)
other_bidders = input("Are there any other bidders? Type 'yes' or 'no'\n")
if other_bidders == "yes":
else:
bidding = 0
entry_list 的格式如下:
entries_list = [
"name": "john",
"bid": 100,
,
"name": "Laura",
"bid": 500,
,
]
在entries_list
中打印一个值可以正常工作:
print(entries_list[0]["bid"]) # output is "100"
但是,当我在 for 循环的 if 语句中引用它时:
max_bid = 0
for entry in entries_list:
if entries_list[entry]["bid"] > max_bid:
print("itworks")
我得到一个 TypeError: list indices must be integers or slices, not dict
有什么想法吗?
【问题讨论】:
【参考方案1】:由于您已经在循环 entries_list 字典,因此您可以对其进行切片
for entry in entries_list:
if entry["bid"] > max_bid:
print("it works")
应该可以。
【讨论】:
当然!我已经在遍历条目,我必须降低 1 个“级别”。谢谢! :)以上是关于在调用列表中的字典中的值时收到“TypeError:列表索引必须是整数或切片,而不是字典”的主要内容,如果未能解决你的问题,请参考以下文章
python - 如何在更改python中的值时合并一个嵌套字典和一个简单字典?