收款柜台-如何从输出中删除“柜台”

时间:2019-03-17 13:29:18

标签: python

输出为: Counter({'l': 2, 'h': 1, 'e': 1, 'o': 1}) 我可以删除“ Counter”一词吗?

from collections import Counter

word = "hello"

print(Counter(word))

3 个答案:

答案 0 :(得分:3)

要将Counter转换回普通词典,只需执行以下操作:

d = dict(Counter(word))

现在,当您打印时,它会照常显示:

print(d)

但是,这实际上没有任何区别。 Counter 毕竟是词典。我想如果您希望它在打印时看起来漂亮就可以。

答案 1 :(得分:2)

当然,您可以将对象传递给json.dumpsjson仅看到字典,而不看到子类

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}