просто делают вывод из моего класса python и замечают, что я забыл, как это сделать. Я знаю, что это супер просто, и я что-то пропускаю, но я был бы рад помочь!pop() Средние два элемента из списка
def outsideIn2(lst):
'''(list)->list
Returns a new list where the middle two elements have been
removed and placed at the beginning of the result. Assume all lists are an even
length
>>> outsideIn2(['C','a','r','t','o','n'])
['r','t','C','a','o','n'] # rt moves to front
>>> outsideIn2(['H','i'])
['H','i'] # Hi moves to front so output remains the same.
>>> outsideIn2(['B','a','r','b','a','r','a',' ','A','n','n','e'])
['r','a','B','a','r','b,','a',' ','A','n','n','e'] # ra moves to front.
'''
length = len(lst)
middle1 = lst.pop((len(lst)/2) - 1)
middle2 = lst.pop((len(lst)/2) + 1)
lst.insert([0], middle1)
lst.insert([1], middle2)
return lst
Я получаю эту ошибку:
middle1 = lst.pop((len(lst)/2) - 1)
TypeError: integer argument expected, got float
Что я делаю неправильно?
Является ли это python 3.x? – dansalmo
В качестве побочного примечания, после того, как вы поп 'len (lst)/2-1', все остальное сдвигает один слот. Это делает вашу математику намного легче, если вы сначала поместите верхнюю. Или, в качестве альтернативы, если вы поместите и снова вставьте его перед появлением и повторным вставкой другого (потому что popping 'len (lst)/2-1' и вставка' 0' оставляет другой в исходном месте). – abarnert