counter and enumerate

我在練習 counter and enumerate,我理解是他們都可以計算這個loop跑了幾次。
使用counter的話,他是從1開始計算,使用enumerate,他是從0開始計算,
因此呈現的total counts是不同的,這樣enumerate 給的數值不就是錯的?或是要自己+1?


counter = 0
for item in 'hello':
    print(item)
    counter += 1
		print(f'counter is {counter}')
----------------------------------
h
counter is 1
e
counter is 2
l
counter is 3
l
counter is 4
o
counter is 5

for counter, character in enumerate('hello'):
		print(character)
		print(f'counter is {counter}')
-------------------------------
h
counter is 0
e
counter is 1
l
counter is 2
l
counter is 3
o
counter is 4

我把0開始當成很自然了,但實務上確實編號也很少是由0開始的
可以加上enumerate(iterable,start=1) 解決這個問題喔!!

for counter, character in enumerate('hello',start=1):
        print(character)
        print(f'counter is {counter}')

我查這裡得知的 https://docs.python.org/3/library/functions.html#enumerate

3個讚

如果您希望讓counter數值顯示從0開始的話
可以試著把counter+=1跟print counter兩行交換看看

2個讚