Append Method in Python

I know this is a simple code, but somehow I kind of wonder why it is so…

my_list = [ ]

for i in range (5):
my_list.append (i + 1)

print(my_list)

[1, 2, 3, 4, 5]

I was thinking of [2,3,4,5,6]. Because it is i+1 for each number from 1 to 5…
Thank you in advance for the explanation.

The range() function yields values which start from 0, not 1, by
default. This matches the use of indices, which also count from 0.

Try this:

 print(list(range(5)))

Cheers,
Cameron Simpson cs@cskk.id.au

1 Like

range(5) produces a sequence of 5 integers starting with 0, not 1

By providing the parameter 5 you’re saying: give me 5 numbers, starting from 0 and stopping when you get to 5.

To append the numbers 1 to 5 you’d do this:

my_list = []

for i in range(1, 6):
    my_list.append(i)

print(my_list)

This way the range gives you all the numbers from start to stop, but does not include stop. This is called a “half open range” in computing.

1 Like

Oh, starts from 0. I may have confused it again. Thank you for the reply!

Thank you for the reply. I get it now.

These are also equivalent:

# Convert an iterable to a list
my_list = list(range(1, 6))

# Use a list comprehension
my_list = [i for i in range(1, 6)]
1 Like