0

Whenever I'm updating the newnumber[index], the number[index] is also updated even tho I'm not updating it.

Here is my code for further reference:

number = [1]
newnumber = [1]
row = int(input("Enter the desired number of rows: "))
for i in range(row):
    print("\n\nFor loop", i)
    print("The number: ", number)
    for i in range(len(number) - 1):
        newnumber[i+1] = number[i] + number[i+1]
        print("number",i, "is equal to", number[i])
        print("number",i + 1, "is equal to", number[i+1])
        print("newnumber",i + 1, "is equal to", newnumber[i+1])

    newnumber.append(number[0])
    print("The newnumber: ", newnumber)
    number = newnumber

I'm getting an output of:

For loop 1
The number:  [1, 1]
number 0 is equal to 1
number 1 is equal to 2
newnumber 1 is equal to 2
The newnumber:  [1, 2, 1]

As you can see, I'm trying to update newnumber[1] by adding number[0] and number[1]. However, number 1 is also being updated thus giving me the wrong output. Why is that? I'm thinking that newnumber[1] and number[1] is somehow connected thus when newnumber[1] is updated the number[1] is also updated.

I'm new in programming perse and saw that python is more newbie friendly. Already did my research but saw that it is more on copying the entire list and not the specific index only.

Mel
  • 5,837
  • 10
  • 37
  • 42

0 Answers0