#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
答案 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