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]]