gpt4 book ai didi

python - 在 Python 中查找与条件匹配的最后一项

转载 作者:行者123 更新时间:2023-11-28 21:46:26 25 4
gpt4 key购买 nike

https://stackoverflow.com/a/9868665/433570找到第一项。

在应用上面的解决方案之前,我可以考虑先做reverse。但是我最终会得到两个可以避免的 reverse

有没有比使用两个 reversenext 更好的解决方案?

最佳答案

我不想反转列表,这可能是一个冗长的操作 (l.reverse()),因为它反转了整个列表,我只是使用 < strong>reversed iterator reversed(l) 使用任何你想要的匹配方法,因为你可以在第一次匹配时提前停止,与反转整个列表相比,它可以节省你的时间。

当然,这两种方法都有最好的情况和最坏的情况,下面可能会根据匹配项在列表中的位置(例如接近结尾、开头或中间)给你一个想法

In [1]: l = range(0, 100000)

In [2]: %timeit next((i for i in reversed(l) if i == 1), None)
100 loops, best of 3: 2.94 ms per loop

In [3]: %timeit next((i for i in reversed(l) if i == 50000), None)
1000 loops, best of 3: 1.39 ms per loop

In [4]: %timeit next((i for i in reversed(l) if i == 99000), None)
10000 loops, best of 3: 29.4 µs per loop

下面是反转同一个列表需要多长时间的想法:

In [5]: %timeit l.reverse()
10000 loops, best of 3: 71.5 µs per loop

注意:我在 Python 2 上面运行,所以 range() 是一个列表而不是迭代器,所以不需要 list(range ()) 它使比较有值(value)。

关于python - 在 Python 中查找与条件匹配的最后一项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37966943/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com