我已经能够验证findUniqueWords确实会导致一个排序的列表。但是,它不返回列表。为什么?
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
如果想让它返回排序后的列表,可以使用sorted()方法。
这样更方便。
l1 = []
n = int(input())
for i in range(n):
user = int(input())
l1.append(user)
sorted(l1,reverse=True)
list.sort()方法就地修改列表并返回None。
如果你还想使用排序,你可以这样做。
l1 = []
n = int(input())
for i in range(n):
user = int(input())
l1.append(user)
l1.sort(reverse=True)
print(l1)
要理解为什么它不返回列表:
Sort()方法不返回任何值,而Sort()方法只是按特定顺序对给定列表中的元素进行排序——升序或降序,而不返回任何值。
所以问题是answer = newList.sort(),其中答案为none。
相反,你可以只返回newList.sort()。
sort()方法的语法是:
list.sort(key=..., reverse=...)
或者,你也可以使用Python的内置函数sorted()来达到同样的目的。
sorted(list, key=..., reverse=...)
注意:sort()和sorted()之间最简单的区别是:sort()不返回任何值,而sorted()返回一个可迭代列表。
在这里,answer = sorted(newList)
如果想让它返回排序后的列表,可以使用sorted()方法。
这样更方便。
l1 = []
n = int(input())
for i in range(n):
user = int(input())
l1.append(user)
sorted(l1,reverse=True)
list.sort()方法就地修改列表并返回None。
如果你还想使用排序,你可以这样做。
l1 = []
n = int(input())
for i in range(n):
user = int(input())
l1.append(user)
l1.sort(reverse=True)
print(l1)