假设我们在Python中有以下列表:
[1,2,3,4,5,4,6,3,1,9,4,3,8,4,2,3,4,4,1,8]
我们如何返回被视为>=4
的最后一个元素?
我尝试做一个for循环并寻找索引,但觉得我经历了一些混乱,除了得到意想不到的结果,并认为可能有一个更简单的方法来解决它。
感谢。
答案 0 :(得分:2)
使用lst
撤消reversed
,并致电next
。
next(i for i in reversed(lst) if i >= 4)
8
这是有效的,因为它只迭代它所需的最小量,以返回结果。这相当于:
for i in reversed(lst):
if i >= 4:
break
print(i)
8
经常会发生没有符合您条件的元素,因此next
根本没有任何回报。在这种情况下,next
返回一个StopIteration
,您可以通过使用默认参数调用函数来避免这种情况 -
next((i for i in reversed(lst) if i >= 4), None)
如果没有元素符合条件None
,则返回i >= 4
。
答案 1 :(得分:0)
您可以尝试:
>>> x = [1,2,3,4,5,4,6,3,1,9,4,3,8,4,2,3,4,4,1,8]
>>> x1 = []
>>> num = 4
>>> for i in x:
... if i >= num:
... x1.append(i)
...
>>> print(x1)
[4, 5, 4, 6, 9, 4, 8, 4, 4, 4, 8]
>>> max(x1)
9