python-3.x 如何在盲标拍卖中获得最大出价值?

i2byvkas  于 2023-06-07  发布在  Python
关注(0)|答案(1)|浏览(116)

我想在课堂上创建一个盲标拍卖,我想获得最大价值。
下面是代码,我试图使用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'},)]
lmyy7pcs

lmyy7pcs1#

您正在尝试将max()函数应用于字典列表。错误消息告诉您,您还没有指定如何判断一个字典何时“大于”另一个字典。
可以为'>'操作符添加一个定义,允许它比较字典,但如果您重新考虑正在使用的数据结构,可能会更好。一个字典列表,每个字典只有一个键/值对,是一种笨拙的结构。为什么不使用一个列表作为名字,另一个列表作为出价,然后使用max()和indexof()来找到最大的出价,并从另一个列表中获得相应的名字呢?

相关问题