I'm relatively new to Python, and this issue has me absolutely perplexed.
I wrote a function to return the index of the highest integer in a list of 5 integers.
Here is the function:
'''
def highestOfFive(list1: list[int]):
modifiable_list = list1
if modifiable_list[0] > modifiable_list[1] and modifiable_list[0] > modifiable_list[2] and modifiable_list[0] > modifiable_list[3] and modifiable_list[0] > modifiable_list[4]:
return 0
else:
modifiable_list.insert(0, modifiable_list[4])
del modifiable_list[5]
if modifiable_list[0] > modifiable_list[1] and modifiable_list[0] > modifiable_list[2] and modifiable_list[0] > modifiable_list[3] and modifiable_list[0] > modifiable_list[4]:
return 4
else:
modifiable_list.insert(0, modifiable_list[4])
del modifiable_list[5]
if modifiable_list[0] > modifiable_list[1] and modifiable_list[0] > modifiable_list[2] and modifiable_list[0] > modifiable_list[3] and modifiable_list[0] > modifiable_list[4]:
return 3
else:
modifiable_list.insert(0, modifiable_list[4])
del modifiable_list[5]
if modifiable_list[0] > modifiable_list[1] and modifiable_list[0] > modifiable_list[2] and modifiable_list[0] > modifiable_list[3] and modifiable_list[0] > modifiable_list[4]:
return 2
else:
modifiable_list.insert(0, modifiable_list[4])
del modifiable_list[5]
return 1
'''
The issue is whenever I use the function on a list, it changes the list:
'''
exampleList = [1, 2, 3, 4, 5]
print(exampleList)
# prints [1, 2, 3, 4, 5]
highestOfFive(exampleList)
print(exampleList)
# prints [5, 1, 2, 3, 4]
'''
It moves the highest number to the beginning of the list. Why? Maybe I'm missing something obvious here.