python字典自动添加尾随逗号
Posted
技术标签:
【中文标题】python字典自动添加尾随逗号【英文标题】:python dictionary automatically add trailing comma 【发布时间】:2019-09-29 20:31:48 【问题描述】:有人知道如何自动在 python 字典中添加尾随逗号吗?
例如:
colours = ['red', 'green', 'red','green','blue', 'green', 'green']
d =
for item in colours:
if item not in d:
d[item] = 1
else:
d[item] = d[item] + 1
我希望得到如下结果:
'red': 2,
'green': 4,
'blue': 1,
带有尾随逗号,而不是普通的字典,例如:'red': 2, 'green': 4, 'blue': 1
我希望它自动添加,而不是手动添加,想象一下读取到字典的数据不是像上面那样简单的颜色列表,而是一个庞大的数据库。
我尝试过 pip install add-trailing-comma,但不知道如何使用它或它是否相关。
谢谢
【问题讨论】:
你会从中得到什么好处? 您的意思是要打印结果字典,在最后一项后加逗号? 在哪里添加尾随逗号? 你的意思是__repr__
esentation?这与字典中实际 in 的内容没有任何区别。您要解决的具体问题是什么?
顺便说一句。看起来 add-trailing-comma 用于修改源代码,包括文字,因此不适用于生成的数据。
【参考方案1】:
如果 dict 的 repr 对您很重要,您可以创建一个自定义 dict 类并覆盖它。
例如:
class CustomDict(dict):
def __repr__(self):
items = ''
item = 'key: value,\n'
full_repr = '\nitems'
for key, value in self.items():
items += item.format(key=key.__repr__(), value=value.__repr__())
return full_repr.format(items=items)
CustomDict('red': 2, 'green': 4, 'blue': 1)
【讨论】:
这可能是最好的方法。 AFAICT,内置的没有任何东西已经以这种风格打印。 pprint 模块中最接近的,但它只是放在右大括号而不是尾随逗号中。以上是关于python字典自动添加尾随逗号的主要内容,如果未能解决你的问题,请参考以下文章