检查列表中两个项目是否按特定顺序出现?
假设我有一个列表 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
。