Machen einer Liste aus Elementen einer anderen Liste macht es zu einem NoneType

Ich versuche, eine Liste von Wörtern mit Wörtern aus einer separaten Liste von Wörtern zu erstellen. Beispielsweise

>>> stuff = ['this', 'is', 'a', 'test']
>>> newlist = [stuff[0]]
>>> newlist
['this']

Es tritt jedoch ein Problem in meinem Code auf, bei dem ich dies versuche, und die neue Liste wird in ein NoneType-Objekt umgewandelt.

Dies ist der Code, der einen Fehler auslöst:

markov_sentence = [stuff[0]]
for i in range(100):
    if len(markov_sentence) > 0:
        if words_d[markov_sentence[-1]] != []:
            newword = random.choice(words_d[markov_sentence[-1]])
            markov_sentence = markov_sentence.append(newword)
        else:
            break
return markov_sentence

Die Variable 'stuff' ist eine Liste von Zeichenkettenwörtern, die aus Benutzereingaben stammen. 'words_d' ist ein früher erstelltes Wörterbuch, das momentan nicht wichtig ist:

stuff = input("Input a series of sentences: ")
stuff = stuff.split()[:-1] #this is here because there was an empty string at the end

Wenn ich versuche, das Programm auszuführen, erhalte ich Folgendes:

Input a series of sentences: this is a test this should work
Traceback (most recent call last):
  File "/u/sbiederm/markov.py", line 32, in <module>
    main()
  File "/u/sbiederm/markov.py", line 29, in main
    print(markov(stuff))
  File "/u/sbiederm/markov.py", line 18, in markov
    if len(markov_sentence) > 0:
TypeError: object of type 'NoneType' has no len()

Kann mir jemand erklären, warum aus der Liste ein NoneType wird? Ich habe eine Vielzahl von Methoden ausprobiert, um dies zu beheben, aber ich kann es einfach nicht herausfinden.

BEARBEITEN

Ich habe dies versucht und den gleichen Fehler erhalten:

markov_sentence = []
markov_sentence.append(stuff[0])

Traceback (most recent call last):
  File "C:\Python34\markov.py", line 33, in <module>
    main()
 File "C:\Python34\markov.py", line 30, in main
    print(markov(stuff.split()))
 File "C:\Python34\markov.py", line 20, in markov
    if len(markov_sentence) > 0:
TypeError: object of type 'NoneType' has no len()

Ich habe mir andere Fragen angesehen und sie erklären nicht, warum dies in meinem Code geschieht. Ich verstehe, dass .append () None zurückgibt. Das ist hier nicht der Fall.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage