Это происходит потому, что вы повторно добавляете четные числа в список. Что это значит?
foo = []
for i in range(1, 7):
foo.append(i)
for i in range(1, 7):
foo.append(i)
# foo == [1, 2, 3, 4, 5, 6, 1, 2, 3, 4, 5, 6]
Надеюсь, это поможет проиллюстрировать происходящее. Попробуйте удалить приложение во второй и третий раз. Код будет:
# Sanity check - Modular [remainder] divison in loops
# Python Libraries
from random import randint
# Create a list of 50 random integers between 0 and 1000
randomNumbers = []
for i in range(100):
randomInt = randint(0, 1000)
randomNumbers.append(randomInt)
print("List of 50 values: ", randomNumbers,"\n")
# Remove odd numbers
evenNumbers = []
counter = 0
for i in range(len(randomNumbers)):
if(i % 2 == 0):
evenNumbers.append(i)
counter += 1
print("Loop run: "+str(counter))
print('\t > List length = '+str(len(evenNumbers)))
for i in range(len(randomNumbers)):
if(i % 2 == 0):
counter += 1
print("Loop run: "+str(counter))
print('\t > List length = '+str(len(evenNumbers)))
for i in range(len(randomNumbers)):
if(i % 2 == 0):
counter += 1
print("Loop run: "+str(counter))
print('\t > List length = '+str(len(evenNumbers)))
Я заменил его диапазоном, но вы можете использовать метод, который вы использовали, который тоже работает.