“ NoneType”对象在python

时间:2019-05-08 20:36:02

标签: sorting python-3.7 nonetype

#i'm just testing it 

lst=[3, 2, 4, 5,1]

print([i for i in lst if i % 2 != 0].sort()[0])

#i haven't tried any thing        

#I expect the output 1

3 个答案:

答案 0 :(得分:1)

sort()对列表进行排序并返回None。看来您打算改用sorted

print(sorted([i for i in lst if i % 2 != 0])[0])

但是,请注意,如果仅使用列表的第一个元素,则无需对列表进行排序。您可以使用min来获得相同的结果,并获得更好的性能(O(n)代替O(nlog(n)):

print(min([i for i in lst if i % 2 != 0]))

答案 1 :(得分:0)

这里的问题是,当您对列表运行'sort'函数时,此函数将更新列表并返回void。因此,您实际上是在尝试在NoneType对象上调用索引。

解决此问题的最佳方法是将过滤器设置为变量,在此var上运行sort,然后打印所需的值。

例如: ''' l = [如果i%2!= 0,则i表示i的第一]

l.sort()

print(l [0]) '''

答案 2 :(得分:0)

sort()正在修改方法并返回None

此作品有效:

tools:layout_behavior