default one dot in your current folder, when you want to go parent folder you can do like this, my python version 3.6.3
2021年6月25日 星期五
2021年6月8日 星期二
defaultdict不適合初值0
from collections import defaultdict multi_dict = defaultdict(list) key_values = [('even',2),('odd',1),('even',8),('odd',3),('float',2.4),('odd',7)] for key,value in key_values: multi_dict[key].append(value) print(multi_dict) # 會輸出defaultdict(<class 'list'>, {'float': [2.4], 'even': [2, 8], 'odd': [1, 3, 7]})
但是
若我們想要直接給予一個固定的值給defaultdict是不行的,會產生TypeError的例外,比如說是在統計元素個數的狀況下,我想要讓default值為0,那有一個方法就是建構一個生成0的函數:
from collections import defaultdict def zero(): return 0 counter_dict = defaultdict(zero) # default值以一個zero()方法產生 a_list = ['a','b','x','a','a','b','z'] for element in a_list: counter_dict[element] += 1 print(counter_dict) # 會輸出defaultdict(<function zero at 0x7fe488cb7bf8>, {'x': 1, 'z': 1, 'a': 3, 'b': 2})
這是一種方法, 但是不夠簡潔, 可用: