【发布时间】:2011-12-20 14:23:03
【问题描述】:
我有一个整数百分比列表,我需要使用以下模式打印:
The index of a value, a tab (8 spaces), a '*' printed for each percentage point
如果索引的值为 0,则打印“小于 1%”
我试过这段代码:
for b in new_tally:
if b > 0:
print new_tally[b], \t, '*' * b
else:
print 'Less than 1% of words had this length'
但是我不断收到错误代码:列表索引超出范围。
我完全不明白,谁能指出我做错了什么?
【问题讨论】:
-
print b-1, '*' * b,也许吧? -
如果某些花哨的东西不适合您,请逐步进行。只需输入 b,或者直接打印 new_tally 看看你会得到什么。
-
你必须区分列表索引和列表内容。说如果你有
lst = [5, 7, 8, 6, 4, 2]。for b in lst: print b将打印 lst 的内容,而不是索引。所以第三个你会得到 8 个。你再次使用这个 8 作为 lst[b] 的索引,那么列表中的第 8 个元素就没有了
标签: python list indexing histogram traceback