Использование нарезки, например, array = array [:: - 1], является изящным трюком и очень питонским, но, возможно, немного неясным для новичков.Использование метода reverse () - хороший способ перейти к повседневному кодированию, поскольку он легко читается.
Однако, если вам нужно повернуть список на месте, как в вопросе об интервью, вы, скорее всего, небыть в состоянии использовать встроенные методы, подобные этим.Интервьюер будет смотреть на то, как вы подходите к проблеме, а не на глубину знаний Python, требуется алгоритмический подход.Следующий пример, использующий классический своп, может быть одним из способов сделать это: -
def reverse_in_place(lst): # Declare a function
size = len(lst) # Get the length of the sequence
hiindex = size - 1
its = size/2 # Number of iterations required
for i in xrange(0, its): # i is the low index pointer
temp = lst[hiindex] # Perform a classic swap
lst[hiindex] = lst[i]
lst[i] = temp
hiindex -= 1 # Decrement the high index pointer
print "Done!"
# Now test it!!
array = [2, 5, 8, 9, 12, 19, 25, 27, 32, 60, 65, 1, 7, 24, 124, 654]
print array # Print the original sequence
reverse_in_place(array) # Call the function passing the list
print array # Print reversed list
**The result:**
[2, 5, 8, 9, 12, 19, 25, 27, 32, 60, 65, 1, 7, 24, 124, 654]
Done!
[654, 124, 24, 7, 1, 65, 60, 32, 27, 25, 19, 12, 9, 8, 5, 2]
Обратите внимание, что это не будет работать с кортежами или последовательностями строк, потому что строки и кортежи неизменны, т. Е. Вы не можетенапишите в них, чтобы изменить элементы.