例如:
print("1.")
draw_histogram({'a': 2, 'c': 7, 'b': 5})
print("2.")
draw_histogram({'a': 0, 'c': 5, 'b': 7, 'f': 0})
我试图获得一系列明星。打印的星数由与键对应的值给出。键按字母顺序打印。如果相应的值小于1,则不打印该键。我尝试了下面的功能,但它不起作用。
def draw_histogram(histogram_dict):
dicts = list(histogram_dict.keys())
for key in dicts:
if histogram_dict[key] < 1:
print (len(str(histogram_dict[key]))*"*")
预期:
1.
a: **
b: *****
c: *******
2.
b: *******
c: *****
答案 0 :(得分:1)
试试这个:
def draw_histogram(histogram_dict):
dicts = list(histogram_dict.keys())
for key in sorted(dicts):
if histogram_dict[key] >= 1:
print(key + ": " + histogram_dict[key] * "*")
print("1.")
draw_histogram({'a': 2, 'c': 7, 'b': 5})
print("2.")
draw_histogram({'a': 0, 'c': 5, 'b': 7, 'f': 0})
您正在执行< 1
,只打印小于 1的值,而您想要>= 1
。此外,做len(str(number)) * "*"
没有意义;这给出了你想要的数字位数。最后,执行sorted()
按字母顺序显示它们。
答案 1 :(得分:0)
histogram_dict[key]
首先,您不需要创建键列表 - 如果您遍历字典,则会自动迭代键。
其次,如果1
大于或等于1
且不小于-global _main:
+global main
-_main:
+main:
,则需要打印。
第三,你错误地计算了星号(星号)的数量,但它们已经在你的字典中作为值。
答案 2 :(得分:0)
以下代码回答了您的问题。
def draw_histogram(histogram_dict):
dicts = list(histogram_dict.keys()) for key in dicts: if histogram_dict[key] < 1: print "{} - {}".format(key, int(histogram_dict[key])*"*") else: print "{} - {}".format(key, int(histogram_dict[key]) * "*")
def draw_histogram(histogram_dict):
输出:
1. a: ** c: ******* b: ***** 2 a: c: ***** b: ******* f:P.N:这个代码是在python 2.7
上开发的