【问题标题】:I am trying to print out the highest bidder in my list of dictionaries我正在尝试打印出我的字典列表中出价最高的人
【发布时间】:2022-01-13 04:14:47
【问题描述】:

我正在尝试遍历我的词典列表并打印出我的词典列表中出价最高的人。在 python 的 for 循环中,'i' 不会自动成为整数?

示例:对于字典中的 i: i 不等于 0、1、2 等等吗?


bidders = [
{
  "name": "nicholas",
  "bid": 12,
},
{
  "name": "jack",
  "bid": 69,
},
]

for i in bidders:
        bid = bidders[i]["bid"]
        name = bidders[i]["name"]
        
        if bid > bid:
            print(f"Congratulations {name}! Your bid of ${bid} wins!")
        else:
            print(f"Congratulations {name}! Your bid of ${bid} wins!")

【问题讨论】:

    标签: python arrays list loops dictionary


    【解决方案1】:

    您可以使用enumerate 来遍历列表并获取当前索引。修复你的 for 循环,它看起来像这样:

    for idx, _ in enumerate(bidders):
        bid = bidders[idx]["bid"]
        name = bidders[idx]["name"]
    

    【讨论】:

      【解决方案2】:

      不,因为您没有调用范围函数,所以 i 不是默认整数。莱昂纳多的答案看起来更正确,但是我在下面写下的内容也可以。

      bidders = [
          {
            "name": "nicholas",
            "bid": 12,
          },
          {
            "name": "jack",
            "bid": 69,
          },
      ]
      
      maxBid = -1
      maxBidName = "";
      
      for i in range(0, len(bidders)):
      
          bid = bidders[i]["bid"]
          name = bidders[i]["name"]
      
          if bid > maxBid:
              maxBid = bid
              maxBidName = name
              
      
      print(f"Congratulations {maxBidName}! Your bid of ${maxBid} wins!")
      

      【讨论】:

        【解决方案3】:

        很少有错误,我认为这会奏效

        bidders = [
        {
          "name": "nicholas",
          "bid": 12,
        },
        {
          "name": "jack",
          "bid": 69,
        },
        ]
        
        highestBid = 0
        highestBidData = {}
        
        for i in bidders:
            if i['bid'] > highestBid:
                highestBid = i['bid']
                highestBidData = i
                
        print("Congratulations {0}! Your bid of {1} `enter code 
        here`wins!".format(highestBidData['name'],highestBidData['bid']))
        

        【讨论】:

          【解决方案4】:
          bidders = [
          {
            "name": "nicholas",
            "bid": 12,
          },
          {
            "name": "jack",
            "bid": 69,
          },
          ]
          
          maxBidder = max(bidders, key=lambda x:x['bid'])
          
          print("Congratulations {}! Your bid of {} wins!".format(maxBidder['name'],maxBidder['bid']))
          

          【讨论】:

            【解决方案5】:

            在 python 的 for 循环中,'i' 不是自动整数?

            示例:对于字典中的 i:i 不等于 0、1、2 等等吗?

            没有

            找出它是什么的非常简单的方法:

            for i in bidders:
                print(i)
                print(type(i))
            

            输出:

            {'name': 'nicholas', 'bid': 12}
            <class 'dict'>
            {'name': 'jack', 'bid': 69}
            <class 'dict'>
            

            【讨论】:

              【解决方案6】:

              我相信您正在寻找的是bid = i[‘bid’]。在这种情况下,i 只是字典的一部分。因此,对于每个条目,您都需要 ’bid’ 的值。

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2021-11-14
                • 1970-01-01
                • 2020-11-12
                • 1970-01-01
                • 2021-07-10
                相关资源
                最近更新 更多