检查列表中两个项目是否按特定顺序出现?

7 投票
13 回答
15553 浏览
提问于 2025-04-17 08:57

假设我有一个列表 v = [1, 2, 3, 4, 3, 1, 2]。我想写一个函数 find_pair,这个函数可以检查两个数字是否在这个列表中,并且是相邻的。比如,调用 find_pair(v, 2, 3) 应该返回 True,而 find_pair(v, 1, 4) 应该返回 False

有没有办法在不使用循环的情况下实现 find_pair 呢?

13 个回答

4

这可能有点绕,但你可以用上面提到的变量v来实现:

' 2, 3' in str(v)
4
v = [1, 2, 3, 4, 3, 1, 2]

def find(x, y, v):
    return (x, y) in zip(v, v[1:])

print find(2, 3, v)
print find(1, 4, v)

当然可以!请把你想要翻译的内容发给我,我会帮你用简单易懂的语言解释清楚。

14
v = [1,2,3,4,3,1,2]
any([2,3] == v[i:i+2] for i in xrange(len(v) - 1))

虽然@PaoloCapriotti的版本可以解决问题,但这个版本更快,因为它一旦找到匹配的内容就会立即停止解析v

撰写回答