Как я могу сделать следующее в Python?
array = [0, 10, 20, 40] for (i = array.length() - 1; i >= 0; i--)
Мне нужны элементы массива, но от конца к началу.
def reverse(my_list): L = len(my_list) for i in range(L/2): my_list[i], my_list[L-i - 1] = my_list[L-i-1], my_list[i] return my_list
def reverse(text): lst=[] for i in range(0,len(text)): lst.append(text[(len(text)-1)-i]) return ''.join(lst) print reverse('reversed')
Вы всегда можете рассматривать список как стек, просто выталкивая элементы из верхней части стека из заднего конца списка.Таким образом, вы получаете преимущество первой в последней характеристики стека.Конечно, вы потребляете 1-й массив.Мне нравится этот метод в том смысле, что он довольно интуитивно понятен, так как вы видите, что один список используется из внутреннего интерфейса, а другой создается из внешнего интерфейса.
Используйте функцию в обратном порядке , как указано ниже, и распечатайте ее
>>> for element in reversed(your_array): ... print element
list_data = [1,2,3,4,5] l = len(list_data) i=l+1 rev_data = [] while l>0: j=i-l l-=1 rev_data.append(list_data[-j]) print "After Rev:- %s" %rev_data
Использование логики старой школы для практики на собеседованиях.
Обмен цифрами спереди назад.Использование двух указателей index[0] and index[last]
index[0] and index[last]
def reverse(array): n = array first = 0 last = len(array) - 1 while first < last: holder = n[first] n[first] = n[last] n[last] = holder first += 1 last -= 1 return n input -> [-1 ,1, 2, 3, 4, 5, 6] output -> [6, 1, 2, 3, 4, 5, -1]
Самый прямой перевод вашего требования на Python - это for утверждение:
for
for i in xrange(len(array) - 1, -1, -1): print i, array[i]
Это довольно загадочно, но может быть полезно.
>>> l = [1, 2, 3, 4, 5] >>> print(reduce(lambda acc, x: [x] + acc, l, [])) [5, 4, 3, 2, 1]
Реверс на месте путем переключения ссылок противоположных индексов:
>>> l = [1,2,3,4,5,6,7] >>> for i in range(len(l)//2): ... l[i], l[-1-i] = l[-1-i], l[i] ... >>> l [7, 6, 5, 4, 3, 2, 1]
С минимальным количеством встроенных функций, при условии, что это настройки интервью
array = [1, 2, 3, 4, 5, 6,7, 8] inverse = [] #create container for inverse array length = len(array) #to iterate later, returns 8 counter = length - 1 #because the 8th element is on position 7 (as python starts from 0) for i in range(length): inverse.append(array[counter]) counter -= 1 print(inverse)