Feb-05-2020, 06:55 AM
I want to manipulate an index value on list1, but can't figure out why the manipulation('alt') appears at two locations instead of just one. list2 shows correctly what I want to do on list1.
list1 = []
list2 = [[[40], 70], [[[40], 70], 90]]
def append_values():
amount = None
if len(list1) == 0:
amount = 70
list1.append([[40],amount])
else:
amount = 90
list1.append([list1[-1],amount])
def alter_lists():
print('ori: ', list1) #Orginal list
list1[1][0][1] = "alt"
print('alt: ', list1) #Altered list
print('\n')
print('ori: ', list2) #Orginal list
list2[1][0][1] = 'alt'
print('alt: ', list2) #Altered list
append_values()
append_values()
alter_lists()Output: ori: [[[40], 70], [[[40], 70], 90]] alt: [[[40], 'alt'], [[[40], 'alt'], 90]] ori: [[[40], 70], [[[40], 70], 90]] alt: [[[40], 70], [[[40], 'alt'], 90]]
