Harrison Croaker - 1 year ago 36
Python Question

# How do I find the highest value and swap it with the end value in an array?

This is my python code so far and the result I'm getting at the end is [5, 2, 3, 12, 1, 12].

``````array = [5,2,3,12,1,6]
temp = ''
lastvalue = 5
highestvalue = array[0]

i=0

while i<5:

if array[i]>highestvalue:
highestvalue = array[i]

i+=1

print(highestvalue)
temp = array[5]
array[5] = highestvalue
highestvalue = temp

print(array)
``````

I'm looking for the result [5,2,3,6,1,12]
.

temp is a separate variable, not an array element. Instead, identify the position needed, and swap with that. I assume that you're doing it "the hard way" (without min and max methods) for homework?

``````array = [5,2,3,12,1,6]
highest_pos = 0
i=0

for i in range(len(array)):
if array[i] > array[highest_pos]:
highest_pos = i
i+=1

print(array[highest_pos])
temp = array[-1]
array[-1] = array[highest_pos]
array[highest_pos] = temp

print(array)
``````

Note also that I've changed your 5 references to use either the list length or the final element, -1. Negative numbers index a list from the opposite (right) end.