我想在课堂上创建一个盲标拍卖,我想获得最大价值。
下面是代码,我试图使用max()函数,但我得到这个错误:
File "Day_9_Blind_Auction.py", line 30, in <module>print(max(data))TypeError: '>' not supported between instances of 'dict' and 'dict'
import os
data = [
]
while True:
name = input("What is your name?: ")
bid = input("What is your bid: $")
other_user = input("Are there any other bidders? Type Yes or No.\n")
if other_user in ['yes', 'Yes']:
os.system('cls')
def new_user(name, bid):
brandnew_user = {
name: bid
},
data.append(brandnew_user)
new_user(name, bid)
if other_user in ['no', 'No']:
print(max(data))
break
我试着删除max(),它完全可以打印输出。但是我需要得到最大值,我不知道怎么做。
这是删除max()函数后的输出:
[({'George': '87'},), ({'Josh': '74'},), ({'Eduardo': '89'},)]
1条答案
按热度按时间lmyy7pcs1#
您正在尝试将max()函数应用于字典列表。错误消息告诉您,您还没有指定如何判断一个字典何时“大于”另一个字典。
可以为'>'操作符添加一个定义,允许它比较字典,但如果您重新考虑正在使用的数据结构,可能会更好。一个字典列表,每个字典只有一个键/值对,是一种笨拙的结构。为什么不使用一个列表作为名字,另一个列表作为出价,然后使用max()和indexof()来找到最大的出价,并从另一个列表中获得相应的名字呢?