亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

max()函數:如何獲取要迭代的項目并傳遞給key = func()

max()函數:如何獲取要迭代的項目并傳遞給key = func()

海綿寶寶撒 2021-03-30 15:03:12
我正在學習用python編寫代碼。我的第一個自賦值分配是Dijkstra的算法,我能夠make_graph并填充它,但是在確定SSSP(源)時遇到了麻煩。我試圖用來min(list,key=func())獲得價值最小的物品。“ key = func()”:在另一個具有相同最小值的索引的列表中,其值必須為“尚未迭代”如何傳遞當前列表項(正在迭代到關鍵基金()以檢查它)在check_list中具有對應的值為“尚未迭代”。如果key = True,將返回最小值嗎?如果func()返回布爾值,key = func()的工作方式
查看完整描述

1 回答

?
侃侃爾雅

TA貢獻1801條經驗 獲得超16個贊

只需使用func,刪除():


min(list,key=func)

例子:


>>> lis = [ '1', '2', '3', '4' ]

>>> def func(x):

...     return int(x)

... 

>>> min(lis, key=func) # each value from list is passed to `func`(one at a time)

'1'

在pythonTrue中等于1和False等于0,因此,如果func()返回布爾值,則實際上您的min函數將比較just1和0。


>>> True == 1

True

>>> False == 0

True

例子:


>>> def func(x): return bool(x)

>>> lis = [ 1, [], 3, 4 ]

>>> min(lis, key=func) # bool([]) evaluated to False, ie 0

[]

>>> max(lis, key=func)

1

另一個例子:


>>> lis  = [[4,5,6], [1,2], [13,1,1,1], [1000]]

>>> def func(x):

...     return len(x)  #comparisons are done based on this value

... 

>>> min(lis, key = func)

[1000]

#equal to

>>> min(lis, key = len)

[1000]


查看完整回答
反對 回復 2021-04-02
  • 1 回答
  • 0 關注
  • 187 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號