Why does "return list.sort()" return None, not the list?

Lee_Str picture Lee_Str · Sep 4, 2011 · Viewed 170.6k times · Source

I've been able to verify that the findUniqueWords does result in a sorted list. However, it does not return the list. Why?

def findUniqueWords(theList):
    newList = []
    words = []

    # Read a line at a time
    for item in theList:

        # Remove any punctuation from the line
        cleaned = cleanUp(item)

        # Split the line into separate words
        words = cleaned.split()

        # Evaluate each word
        for word in words:

            # Count each unique word
            if word not in newList:
                newList.append(word)

    answer = newList.sort()
    return answer

Answer

Ismail Badawi picture Ismail Badawi · Sep 4, 2011

list.sort sorts the list in place, i.e. it doesn't return a new list. Just write

newList.sort()
return newList