Python item count in a for loop
本问题已经有最佳答案,请猛点这里访问。
今天早些时候我在python中尝试了循环和列表,我有点沉迷于这一点,可能非常简单…以下是我的代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | animals = ["hamster","cat","monkey","giraffe","dog"] print("There are",len(animals),"animals in the list") print("The animals are:",animals) s1 = str(input("Input a new animal:")) s2 = str(input("Input a new animal:")) s3 = str(input("Input a new animal:")) animals.append(s1) animals.append(s2) animals.append(s3) print("The list now looks like this:",animals) animals.sort() print("This is the list in alphabetical order:") for item in animals: count = count + 1 print("Animal number",count,"in the list is",item) |
count变量不起作用,因为任何原因,我试图搜索这个问题,但找不到任何内容。它说它没有定义,但是如果我放一个正常的数字或一个字符串,它工作得很好。(我现在也生病了,所以我不能正确地思考,所以这可能很简单,我只是没有抓住它)我要做一个新的for循环吗?因为当我这样做的时候:
1 2 3 | for item in animal: for i in range(1,8): print("Animal number",i,"in the list is",item) |
它只是把列表中的每一项都吐出来,数字是1-7,这是…更好,但不是我想要的。
您需要先定义计数,例如:
1 | count = 0 |
另一个更好的方法就是:
1 2 | for count, item in enumerate(animals): print("Animal number", count + 1,"in the list is", item) |
您需要在循环之前初始化
你应该这样做
1 2 3 4 5 | ... count = 0 for item in animals: count = count + 1 ... |
您试图增加一个从未设置的值:
1 2 | for item in animals: count = count + 1 |
python抱怨
循环前设置为
1 2 3 4 | count = 0 for item in animals: count = count + 1 print("Animal number",count,"in the list is",item) |
现在第一次执行
作为一种更为pythonic的替代方法,您可以使用
1 2 | for count, item in enumerate(animals): print("Animal number",count,"in the list is",item) |
明白枚举是什么意思吗?