2014-12-08 5 views
1

Мне нужно это, чтобы отменить то, что в списке нет, если его номера или слова прямо сейчас, когда я его запускаю, он печатает None. Мне нужно, чтобы распечатать перевернутый список. Может ли кто-нибудь помочь?Обратный порядок списка

def func4(x): 
    print(x.reverse()) 
    return; 
e = ['baby','egg','chicken'] 
func4(e) 

ответ

5

Ваш код действительно работает по назначению; он полностью отменяет список. Причина, по которой он печатает None, заключается в том, что list.reverse - это метод на месте, который всегда возвращает None.

Из-за этого, вы должны называть reverse по своей собственной линии:

def func4(x): 
    x.reverse() 
    print(x) 
e = ['baby','egg','chicken'] 
func4(e) 

Теперь print напечатает перевернутый список вместо None возвращенного reverse.

Обратите внимание, что тот же принцип применяется к list.append, list.extend и почти всем другим методам, которые мутируют объекты в Python.

Кроме того, я удалил возвращаемый оператор из конца вашей функции, так как он ничего не полезен. По умолчанию функции Python возвращают None, поэтому нет причин явно делать это.

+0

это фик его спасибо – clutchcocobean

2

x.reverse() не возвращает обратный список, он просто отменяет его. Вам нужно отдельно позвонить print(x) после того, как вы его отменили.

3

вы можете просто порезать:

e = ['baby','egg','chicken'] 
f = e[::-1] 
print(f) 
+3

почему downvote? Я согласен, что это более надежный, чем метод «обратный» ... –

1

Простой подход с "обратной" функции:

for str in reversed(e): 
    print(str) 
Смежные вопросы