背景:
最近在跟着coursera上面Dr.Chuck课程《Python Data Structures》入门python,遇到关于list结构使用sort函数排序的一点问题。
(btw:Dr.Chuck真的不要太有魅力啊,感觉自己本来对编程无感的的弱鸡都开始喜欢上了。向想学习的小伙伴墙裂推荐Dr.Chuck的一系列课程。
课程传送门
问题描述:
代码如下所示,在使用sort函数后,本来应该对list排序却显示None
fname = input("please enter the file path:")
fh = open(fname)
lst = list()
for line in fh:
for i in line.split():
if i in lst: continue
lst.append(i)
print(lst.sort())
结果显示:None
原因分析:
网上冲浪了一波后发现,list.sort()后是虽然在列表内部进行了排序, 但这波操作后不会有返回值, 所以此处显示为None。
但是其实在python IDLE中是能够成功返回的:
解决方案:
其实非常简单,只用将sort函数改成sorted()就可以正常显示啦!
希望能对大家有所帮助~
print(sorted(lst))
ps. 更新:今天发现还有一种新的方法,即把最后一行更改成如下:
lst.sort()
print(lst)
应该这样也可以啦~