Python:当变量在lis中时,从列表中返回下一个最大整数

2024-04-26 01:29:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在写一个程序来过滤坐标,并根据随机数据和不断变化的数据来确定坐标是否是一个安全的位置。如果y位置已经在列表中,那么我当前将递增1并移动到下一个位置。你知道吗

例如,我想知道你有:

a = [1,3,5,6,2]
y = 2

有没有办法返回下一个不在列表中的最大整数。例如,在上面的例子中,它将返回4。如果是这样的话,这会比每次增加一个更快。感谢您的帮助。你知道吗


Tags: 数据程序列表整数例子办法
1条回答
网友
1楼 · 发布于 2024-04-26 01:29:52

如果对列表进行排序,可以使用二进制搜索快速获得答案。bisect_right函数将返回您要查找的数字的索引,或者len(a)如果该数字是列表中最大的>=。你知道吗

>>> a.sort()
>>> a
[1, 2, 3, 5, 6]
>>> import bisect
>>> bisect.bisect_right(a, 2)
2
>>> bisect.bisect_right(a, 4)
3
>>> bisect.bisect_right(a, 7)
5

相关问题 更多 >

    热门问题