我正在查看這個 leetcode 問題Leetcode。我試圖了解提供的解決方案是:
class Solution:
def groupAnagrams(strs):
ans = collections.defaultdict(list)
for s in strs:
count = [0] * 26
for c in s:
count[ord(c) - ord('a')] = 1
ans[tuple(count)].append(s)
return ans.values()
我知道我們正在創建一個字符計數元組作為鍵并將與元組匹配的單詞作為值添加到映射中。
我感到困惑的是這條線 ans[tuple(count)].append(s)。為什么不是
ans[tuple(count)]=s。追加是否向地圖添加值?我認為地圖沒有 append() 方法?
任何人都可以澄清這一特定行嗎?謝謝
uj5u.com熱心網友回復:
ans是defaultdict創建一個新的串列,如果該鍵沒有當前映射到任何東西。因此,ans[tuple(sorted(s))]在字典中查找已排序元組的當前值(預期為串列)。如果沒有,它會創建一個新的空串列并將其與密鑰相關聯。然后它附加s到該值。字典沒有append方法,但值可能。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/406008.html
標籤:
