在“条形图”中显示列表的内容

时间:2013-04-25 07:19:06

标签: python python-3.x

我是Python的新手,我正在努力学习如何将列表与for循环和for循环结合起来,以便即将在Uni举办的研讨会。我在一件事上磕磕绊绊:

基本上,我有一个存储在列表中的数值,我想像这样显示:

1  IIIII
2  II
3
4  III 
5  II

所以我代表数字,即3 = III

我尝试了这段代码(我之前在代码中已将count设置为列表):

listIndex = 1
while listIndex < len(count):
    print(listIndex, " ", end='')
    for number in count[listIndex]:
        print("I", end='')
    print()
    listIndex += 1

但是我收到以下错误:

1   Traceback (most recent call last):
File "/Volumes/USB/workshop7.py", line 145, in <module>
for number in count[index]:
TypeError: 'int' object is not iterable.

我没有看到我做错了什么,我查了一下错误,我不明白为什么我不能遍历那个for循环?

for循环应该使用listIndex变量转到列表中的相应索引并检索该值,将其显示为一系列Is以与存储在那里的数字相对应?任何有助于理解我出错的地方都会非常感激。 这是评估(5%),所以如果你能帮助我思考而不是给我答案,那将非常感激。

3 个答案:

答案 0 :(得分:2)

count[listIndex]是一个int值,而不是列表。您可以使用range()制作列表,甚至可以使用“字符串乘法”,即print('I' * count[listIndex])并省略for循环。

答案 1 :(得分:1)

因此,您有一个名为“count”的列表,其中包含计数,并且您使用count [listIndex]获取其中一个列表。结果是什么?一个int,对吧?

这意味着您的for循环正在尝试执行以下操作:

for number in 3:
    print("I", end='')

“3中的数字”是否是在Python中进行循环的有效方法?什么是更好的方法来编写循环?

答案 2 :(得分:0)

  1. 在Python列表中,索引为0,因此您应该从0
  2. 开始list_index
  3. 知道计数,你不需要循环打印'我'。在Python中你可以做到:

    print 'I'*count[list_index]