【发布时间】:2014-08-16 18:08:29
【问题描述】:
所以到目前为止我的代码是计算每个字符的数量并且它可以工作,但调整是我需要以某种方式将数字替换为“星号”('*')。让我举个例子,这样更容易理解。
entert text please.
HEY hei
现在是:
histogram:
e: 2
h: 2
i: 1
y: 1
想要:
histogram:
e: **
h: **
i: *
y: *
有些人想知道,是的,这是学校作业的一部分,我不想使用 Collection / counter
def count_dict(mystring):
d = {}
# count occurances of character
for w in mystring:
d[w] = mystring.count(w)
# print the result
print("histogram:")
for k in sorted(d):
(str(d[k])).replace(isdigit(), '*')
print (k +': ' + str(d[k]))
mystring = input("entert text please.\n").lower().replace(' ', '')
count_dict(mystring)
已解决
编辑:
这个小技巧成功了:
m = int(str(d[k]))
print (k +': ' + m*'*')
【问题讨论】:
-
你知道
print('!' * 3)打印'!!!' -
TypeError: 不能将序列乘以“str”类型的非整数
-
不得不将其强制转换为 int --> m = int(str(d[k])) 然后 print(m*'*')
-
d[k]已经是一个 int。所以m=d[k]或简单地使用d[k]而不是m更简单。
标签: python string python-3.x counter