Python 托收柜台-如何删除";柜台;从输出

Python 托收柜台-如何删除";柜台;从输出,python,Python,输出为: 计数器({'l':2,'h':1,'e':1,'o':1}) 我可以去掉“计数器”这个词吗 要将计数器转换回普通字典,只需执行以下操作: d = dict(Counter(word)) 现在,当您打印它时,它会像往常一样: print(d) 不过,这真的没什么区别计数器毕竟是一本字典。我想如果你想让它在打印时看起来漂亮就可以了。当然,你可以将对象传递给json.dumpsjson只查看字典,而不查看子类 from collections import Counter import

输出为:
计数器({'l':2,'h':1,'e':1,'o':1})
我可以去掉“计数器”这个词吗


要将
计数器
转换回普通字典,只需执行以下操作:

d = dict(Counter(word))
现在,当您打印它时,它会像往常一样:

print(d)

不过,这真的没什么区别<代码>计数器毕竟是一本字典。我想如果你想让它在打印时看起来漂亮就可以了。

当然,你可以将对象传递给
json.dumps
json
只查看字典,而不查看子类

from collections import Counter
import json

word = "hello"
c = Counter(word)

print(json.dumps(c))
结果:

{"l": 2, "o": 1, "h": 1, "e": 1}
{'h': 1, 'o': 1, 'e': 1, 'l': 2}
这避免了创建一个副本作为基本字典只是为了正确显示它。 使用键/值上的循环打印内容的更多方法:

另一种方法是强制基本
dict
表示方法:

print(dict.__repr__(Counter(word)))
结果:

{"l": 2, "o": 1, "h": 1, "e": 1}
{'h': 1, 'o': 1, 'e': 1, 'l': 2}

您可以使用函数
strip()
删除字符串
'Counter()'

或者,您可以使用字符串切片。它应该更有效(根据@jornsharpe):


您可以将
计数器
转换回普通字典,如果这是您的意思的话?它被覆盖了。@jonrsharpe我很确定在Python<3.7中会丢失顺序,though@DeepSpace什么订单<代码>计数器也没有顺序。@jornsharpe它是(至少它的
str
表示):
print(Counter('aaabbc'))#Counter({'a':3,'b':2,'c':1})
@DeepSpace这是一个文档中甚至没有提到的实现细节,这是因为他们调用
最常见的
,而不仅仅是
。但是顺序会丢失(至少在Python<3.7中是这样):
print(dict(Counter('aaabbc')))#{c':1,'a':3,'b':2}
@DeepSpace没关系,你不能指望字典的顺序,这并不能保证适用于所有Python版本。此外,这不是问题中的要求,而且无论如何,
计数器
也没有保留顺序。字典不适用于有序的值集。@IrfanuddinShafi不,它们(通常)不适用。但是,当打印
计数器时,您确实会得到一个有序的输出(在其余注释之后,
计数器.\uuuu repr\uuuu
是使用
实现的。在大多数Python实现中,如果不是所有Python实现中,最常见的是
)。至少值得一提的是,当转换为“正常”dict时,此有序输出将lost@DeepSpace你已经知道这一点很久了:如果问题中没有明确说明,这不是一个要求,否则OP不会接受这个答案。除非明确说明,否则假设非书面需求是不正确的。而且
计数器
不保留输入顺序,因此首先没有要保留的顺序。您取决于实现细节。如果您正在损坏字符串,那么此时您最好执行
[8:-1]
;这样会更有效率。
print(c.__repr__().strip('Counter()')) 
# {'A': 2}
print(c.__repr__()[8:-1])) 
# {'A': 2}