具体文字及字符有像这样的列表(只有这样,更大)被称为“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