因爲一些代碼很繁忙,並且有一個基本上需要字典的函數,其中每個值都是一個列表,並返回列表最大的密鑰。編寫一個函數的兩種不同方法(地圖vs循環)
我寫了下面:
def max_list(dic):
if dic:
l1 = dic.values()
l1 = map(len, l1)
l2 = dic.keys()
return l2[l1.index(max(l1))]
else:
return None
別人寫道:
def max_list(dic):
result = None
maxValue = 0
for key in dic.keys():
if len(dic[key]) >= maxValue:
result = key
maxValue = len(dic[key])
return result
這將是「正確」的方式做到這一點,如果有一個。我希望這不會被視爲社區維基(即使代碼有效),試圖找出問題的最佳模式。
從Python的禪:明確比隱含更好。 簡單勝過複雜。 Flat比嵌套更好。 稀疏比密集好。 如果實施難以解釋,這是一個壞主意。 – phkahler
是的......生活的話:) –
我想知道爲什麼你有一個downvote,我沒有...這似乎不公平... :-( – mgilson