具體文字及字符有像這樣的列表(只有這樣,更大)被稱爲「DATA_LIST」:去除字典
2017-04-01, available
2017-04-02, available
2017-04-01, available
2017-04-02, available
2017-04-02, available
2017-04-01, available
2017-04-02, available
2017-04-01, available
2017-04-02, available
2017-04-01, available
etcetera
我用下面的代碼,
dates = collections.defaultdict(list)
for date, xyz in data_list:
dates[date].append(xyz)
counts = {date: collections.Counter(xyz) for date, xyz in dates.items()}
要創建像一本字典這個:
2017-04-01,Counter({'available': 9})
2017-04-02,Counter({'available': 12})
2017-04-03,Counter({'available': 9})
2017-04-04,Counter({'available': 4})
2017-04-05,Counter({'available': 9})
2017-04-06,Counter({'available': 2})
我將如何繼續刪除「計數器」? (最終像「(」和「{」字符)
目前,我有這樣的代碼,但它不會做任何事情。
for x in my_dictionary:
try:
x = x.replace('Counter','')
except:
pass
主要目標最終是讓.csv文件像這樣:
date, available
2017-04-01, 9
2017-04-02, 12
2017-04-03, 9
2017-04-04, 4
2017-04-05, 9
2017-04-06, 2
字典的打印輸出部分:
'2018-12-12': Counter({'available': 3}), '2018-04-28': Counter({'available': 4}), '2017-12-16': Counter({'available': 2}), '2017-12-17': Counter({'available': 2}), '2017-12-14': Counter({'available': 2}), '2017-12-15': Counter({'available': 2}), '2017-12-12': Counter({'available': 2}), '2017-12-13': Counter({'available': 2}), '2017-12-10': Counter({'available': 2}), '2017-12-11': Counter({'available': 2}), '2017-12-18': Counter({'available': 2}), '2017-12-19': Counter({'available': 2}), '2018-05-31': Counter({'available': 4}), '2018-05-30': Counter({'available': 4}),
你希望輸出不是一個列表。還有那些'Counters'是'collections.Counter'對象(不是字符串),你可以簡單地訪問鍵和值,如果你想。 – Kasramvd
它曾經是一個字典,我將它轉換爲一個列表,其中列出了「for count.items():listcalender.append(x)」中的x。 where「counts」是orignal字典。所以你說最好保留字典並刪除那裏的角色? – David
是的,如果你能從字典中獲得更好的方式。即使你的項目仍然是複雜的對象,你可以解析它們,讓你期望的項目在嵌套循環,或整個操作在列表理解。 – Kasramvd