這個問題在這里已經有了答案: 從物件串列中獲取屬性的最大值 7 個答案 57 分鐘前關閉。
我有如下的字典 python 串列。我想找到'high'欄位的最大值。
ohlc = [
{
'open' : 100,
'high' : 105,
'low' : 95,
'close' : 103
},
{
'open' : 102,
'high' : 108,
'low' : 101,
'close' : 105
},
{
'open' : 101,
'high' : 106,
'low' : 100,
'close' : 105
}
]
在這種情況下,函式應該回傳high= 108。
有人建議可以使用從具有生成器運算式的物件串列中獲取屬性的最大值,但是當我嘗試
print(max(node.high for node in ohlc ))
它因“'dict'物件沒有屬性'high'”而失敗。
uj5u.com熱心網友回復:
我提供了一種簡單易懂的使用方式for loop,如下:
import sys
ohlc = [
{
'open': 100,
'high': 105,
'low': 95,
'close': 103
},
{
'open': 102,
'high': 108,
'low': 101,
'close': 105
},
{
'open': 101,
'high': 106,
'low': 100,
'close': 105
}
]
max_high = -sys.maxsize # This will be a minimum value
# or you can use: max_high = ohlc[0]['high'] to assign first high value.
for i in ohlc:
if i['high'] > max_high:
max_high = i['high']
print(max_high)
#108
如果您想了解更多關于 `sys.maxsize' 的資訊,請參閱https://www.geeksforgeeks.org/sys-maxsize-in-python/
uj5u.com熱心網友回復:
像這樣使用 max 函式的 key 引數:
ohlc = [
{
'open' : 100,
'high' : 105,
'low' : 95,
'close' : 103
},
]
print(max(ohlc, key=(lambda item: item['high'])))
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/432390.html
