我正在嘗試遍歷我的字典串列并列印出我的字典串列中出價最高的人。在 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!")
uj5u.com熱心網友回復:
您可以使用enumerate來遍歷串列并獲取當前索引。修復你的for回圈,它看起來像這樣:
for idx, _ in enumerate(bidders):
bid = bidders[idx]["bid"]
name = bidders[idx]["name"]
uj5u.com熱心網友回復:
不,因為您沒有呼叫范圍函式,所以 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!")
uj5u.com熱心網友回復:
幾乎沒有錯誤,我認為這會起作用
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']))
uj5u.com熱心網友回復:
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']))
uj5u.com熱心網友回復:
在 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'>
uj5u.com熱心網友回復:
我相信您正在尋找的是bid = i[‘bid’]. i在這種情況下,它只是字典的一部分。因此,對于每個條目,您都需要’bid’.
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/411450.html
標籤:
