Вопрос по python – Функция Python возвращает None, непонятно почему

2

Я довольно плохо знаком с Python и столкнулся с проблемой, которую не могу объяснить. Я пробовал искать ответы на форумах здесь, но то, что я нахожу, не соответствует моей ситуации. Такое ощущение, что я упускаю что-то довольно простое, но я этого не вижу (очевидно ...)

Этот код работает так, как я ожидаю:

<code>import string

mults = [1,2,3,4,6,7,9,10,12,15,16,19,21,22,24]

def factor_exp(lst):
    if lst[-1] == 1:
        lst.pop()
        return lst+[1]
    if lst[-1] == 2:
        lst.pop()
        return lst+[1,1]
    else:
        return "Should never get here"

print factor_exp([1])
print factor_exp([2])
print factor_exp([1,2])
</code>

Это возвращает:

<code>>>> 
[1]
[1, 1]
[1, 1, 1]
</code>

Что я и хочу.

Я думал, что с помощью добавления и расширения в списке внутри функции также будет работать. Один & quot; добавить & quot; добавлено в нижней части кода.

<code>import string

mults = [1,2,3,4,6,7,9,10,12,15,16,19,21,22,24]

def factor_exp(lst):
    if lst[-1] == 1:
        lst.pop()
        return lst+[1]
    if lst[-1] == 2:
        lst.pop()
        return lst.append([1,1])
    else:
        return "Should never get here"


print factor_exp([1])
print factor_exp([2])
print factor_exp([1,2])
</code>

Но это возвращает:

<code>>>> 
[1]
None
None
</code>

Почему "нет"? появляются? Заранее спасибо за любую помощь или идеи.

Спасибо! Это помогает. user1376401
Посмотрите на эту документацию:docs.python.org/tutorial/datastructures.html... Если он не говорит конкретно, что он возвращает что-то, то вы можете предположить, что он возвращает None. tabchas

Ваш Ответ

1   ответ
6

return lst.append([1,1])

list.append() всегда возвращаетсяNone.

Такlst.append([1,1]) добавит[1,1] вlst и вернутьсяNone.

Спасибо. Это объясняет это ясно. user1376401
Я согласен, это распространенная ошибка, я привык думать, чтоlist.append вернет добавленный элемент тоже.

Похожие вопросы