今天做毕设的时候,对价格序列进行排序,用到了sort方法使用这样的语句:
sortedprice=partialminprice.sort()
然后后来想使用sortedprice的时候出现报错,代码和报错如下:
for price in sortedprice:
pos=0
if price==pb:
stopposition=pos
break
pos+=1
报错在for price in sortedprice:说TypeError:'NoneType' object is not iterable
也就是说sort的返回值是一个None
后来问了度娘,发现是这样的:sort 函数的返回值是None,但是是在原列表上进行排序。如果想要返回排序后的结果,就用sorted.
举例如下:
一个解释:一门编程语言提供了一个sort函数的时候,作为使用者第一个应该问的问题是:这个函数是in-place的还是返回一个新object。Python的sort是in-place的,那么排序完成后的列表就没有返回的必要了,当然返回None是最正确的做法。