1. 程式人生 > 其它 >字典中找不到對應的鍵的處理方法

字典中找不到對應的鍵的處理方法

def Count_word(file_name):
    # 編譯正則表示式模式,查詢所有字母(>=1)
    word_re = re.compile(r'\w+')
    # 定義索引字典
    index = {}
    # index = collections.defaultdict(list)
    with open(file_name, encoding='utf-8') as fp:
        # 遍歷檔案 從第一行開始  enimerate(sequence, startindex)
        # 行號  行內容
        for line_no, line in
enumerate(fp, 1): # 每行內容查詢,返回迭代器 for match in word_re.finditer(line): # 返回匹配到的字串 word = match.group() # 行中匹配到的index(預設為0) + 1 column_no = match.start() # 行號 行中出現的索引開始位置 location = (line_no, column_no)
# 列表中查詢不到鍵的第一種處理方式 # 查詢index字典中是否存在word,不存在把 word [] 放入index{} occurrences = index.get(word, []) occurrences.append(location) index[word] = occurrences # 列表中查詢不到鍵的第二種處理方式 # setdefault index.setdefault(word, []).append(location)
# # 第三種處理方式 defaultdict # 將list構造方法作為字典中預設的元素形式 index = collections.defaultdict(list) # 如果字典中找不到word,上面一句就會被呼叫,為查詢不到的word建立一個值(空列表) index[word].append(location) for word in sorted(index, key=str.upper): print(word, index[word]) Count_word('zen.txt')