今天做毕设的时候,对价格序列进行排序,用到了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是最正确的做法。
Python排序函数详解
本文通过一个实际案例,探讨了Python中列表排序方法sort()与sorted()的区别。sort()方法会在原列表上进行排序且返回值为None,而sorted()则会返回一个排序后的新列表。文章还介绍了如何正确选择这两种排序方法。
1万+

被折叠的 条评论
为什么被折叠?



