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字典自动添加尾随逗号的主要内容,如果未能解决你的问题,请参考以下文章

Python中添加字典条目时逗号的作用

python字典如何添加元素

Python自动化3.0-------学习之路-------字典!

[Python]-4-元组列表与字典

Python字典

python自动化测试学习笔记-2-字典元组字符串方法