确定两个给定数字在整数序列中是否相邻的 Pythonic 方法

标签 python algorithm

给定整数 a, b 使得 a < b;和一些有序的可迭代整数序列,seq。确定 ab 是否按顺序出现在 seq

中的任何地方

显而易见的第一步是:

假设 a < b(如果 a > b,只需切换值)。

>>> idx = 0
>>> for i in range(0, len(l)):
...     if a == l[i]:
...             idx = i
... 
>>> b == l[idx+1]

这感觉很笨拙。

例如给定

>>> [1, 2, 3, 8]

如果a为1,b为3,则不相邻,如果a为3,b为8,则相邻。

有些东西告诉我有一种更 pythonic 的方式来做这件事,或者这是一个经过充分探索的问题,而我缺少一种更清晰/更清晰的方法来处理它。

最佳答案

使用any reducer 来确定是否有任何相邻对匹配 (a,b):

>>> seq = [1, 2, 3, 8]
>>> a = 3
>>> b = 8
>>> any((seq[i], seq[i+1]) == (a,b) for i in range(len(seq)-1))
True
>>> b = 1
>>> any((seq[i], seq[i+1]) == (a,b) for i in range(len(seq)-1))
False
>>> 

关于确定两个给定数字在整数序列中是否相邻的 Pythonic 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43689603/

相关文章:

python - 为什么纬度和经度在netcdf文件中是二维数组?

python - 在Anaconda中播放文件中的视频

python - requests.post() 的 CSRF 验证失败

sql - 共同的 friend -SQL算法

判断两段是否相交的C++程序

algorithm - 重复替换或伸缩以计算函数的运行时间复杂度

python - 从数据框或系列的 Pandas 输出中删除名称、数据类型

python - 我如何在 python 中向下转换

string - 查找没有特定子字符串的字符串数

c++ - 如何优化非线性方程组的解?