首页 > 解决方案 > 如何找出数组是否包含数字 3 以及是否有两个 3 彼此相邻

问题描述

给定一个整数列表,例如:

lst = [3,3,6,5,8,3,4,5]

然后,我使用列表理解来找出数字 3 出现在此列表中的哪个索引处:

[i for i, x in enumerate(lst) if x == 3]

但是现在我无法弄清楚如何查看数字 3 是否位于另一个 3 旁边并将其返回为 True

标签: python

解决方案


您可以使用zip()对数据进行成对循环:

any(a == b == 3 for a, b in zip(lst, lst[1:]))

然后链式比较 to 检查ab是否都等于3。函数any()检查这些更改的比较是否为真。

FWIW,另一种循环pairwise()的方法显示在文档的itertools recipes部分。

希望这可以帮助 :-)


推荐阅读