输出为:
Counter({'l': 2, 'h': 1, 'e': 1, 'o': 1})
我可以删除“ Counter”一词吗?
from collections import Counter
word = "hello"
print(Counter(word))
答案 0 :(得分:3)
要将Counter
转换回普通词典,只需执行以下操作:
d = dict(Counter(word))
现在,当您打印时,它会照常显示:
print(d)
但是,这实际上没有任何区别。 Counter
毕竟是词典。我想如果您希望它在打印时看起来漂亮就可以。
答案 1 :(得分:2)
当然,您可以将对象传递给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}
避免将副本创建为基本字典,只是为了正确显示它。 使用仅循环键/值和打印的更多方式来打印内容:Formatting output of Counter
另一种方法是强制使用基本的dict
表示方法:
print(dict.__repr__(Counter(word)))
结果:
{'h': 1, 'o': 1, 'e': 1, 'l': 2}
答案 2 :(得分:0)
您可以使用函数'Counter()'
删除字符串strip()
:
c = Counter('AA')
print(repr(c).strip('Counter()'))
# {'A': 2}
或
print(c.__repr__().strip('Counter()'))
# {'A': 2}
或者,您可以使用字符串切片。它应该更高效(根据@jonrsharpe):
print(c.__repr__()[8:-1]))
# {'A': 2}