有沒有辦法快速查詢字典對象以查找含有大多數字的鍵(所有鍵都是字符串類型)?Python - 在字典中查找最長(大多數字)鍵
也就是說,如果最大鍵的項目有五個單詞{'這是最大的鍵':3},我怎麼能夠快速查詢字典並返回int'5'?
最佳, 喬治娜
有沒有辦法快速查詢字典對象以查找含有大多數字的鍵(所有鍵都是字符串類型)?Python - 在字典中查找最長(大多數字)鍵
也就是說,如果最大鍵的項目有五個單詞{'這是最大的鍵':3},我怎麼能夠快速查詢字典並返回int'5'?
最佳, 喬治娜
最大的 - 每個關鍵詞的次數:
max(len(k.split()) for k in d.keys())
沒有捷徑。簡單的方法:
import re
max([len(re.split('\s+', k)) for k in d.keys()])
哇 - 謝謝!那很完美! – Georgina 2010-12-01 04:27:18
這會給你的關鍵:
max(d, key=lambda x: len(x.split()))
如果你想要的大小:
max(len(x.split()) for x in d)
longest=max(d.keys(), key=lambda s:len(s.split()))
len(longest.split())
max(len(i.split()) for i in d.iterkeys())
答案是否定的。
如果您想知道是否有快速輸入的解決方案,那麼當然,請查看其他答覆。但是他們中的任何一個都不會在大型字典上快速運行,我相信這是您問題的精神所在。
如果這確實是您需要經常做的事情,您應該修改代碼中的添加和刪除字典中的鍵的點,以便它們還保留一堆鍵,按字數排序。
如果你能保證...
計數
max(key.count(' ') for key in d) + 1
如果你不能....
拆分
max(len(key.split()) for key in d)
它是否需要是int,或者密鑰本身是否可以接受? – 2010-12-01 04:23:34
什麼時候有領帶? – JAL 2010-12-01 04:31:55
鑑於你接受的答案,我一定誤解了你的問題的意圖。但是,我堅持認爲,如果您發現需要經常這樣做,那麼您選擇的數據結構很差。 – jtdubs 2010-12-01 04:45:28