python - 如何找出数组是否包含数字 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
解决方案
您可以使用zip()对数据进行成对循环:
any(a == b == 3 for a, b in zip(lst, lst[1:]))
然后链式比较 to 检查a和b是否都等于3。函数any()检查这些更改的比较是否为真。
FWIW,另一种循环pairwise()的方法显示在文档的itertools recipes部分。
希望这可以帮助 :-)
推荐阅读
- python - 如何在两个字典中使用多个键列表值
- python - Conda 不允许我激活环境
- excel - 如何在宏中使用替换函数将字符替换为其他字符
- git - git subtree:内部项目包括外部项目的整个历史。这是预期的吗?
- xml - 目录中的类似 XML 配置文件需要更新 - 在 SingleNode 中添加新属性和替换现有属性
- angular - 如何使用 ngx-build-plus (extra-webpack-config) 运行 e2e 测试?
- llvm - 编写 LLVM 转换通道以在每个函数的开头注入延迟
- javascript - 根据某些条件从嵌套的 Javascript 对象中获取键
- entity-framework - 运行我的颤振应用程序时出现 Gradle 错误
- google-cloud-platform - GCP 云运行限制