【发布时间】:2017-11-17 04:21:55
【问题描述】:
我找不到答案,我是一个新手程序员,很抱歉这个愚蠢的问题!
在python中说我想找到序列[69, 69]第一次出现在列表[34,34,34,50,39,69,69,54]中的where。有这个列表符号吗?感觉有,但是一直没找到。我不是要制作函数,我想学习 list/for 方法。
如果a = [34,34,34,50,39,69,69,54] 我如何找到[69,69] 的起点? (作为一般性声明)如果我假设 [69,69] 实际上在 a 中?
【问题讨论】:
-
您可能想要一个宽度为 2 的 sliding window,然后检查它是否等于您的目标列表
-
如果你不关心性能:
int(",".join(map(str, [34,34,34,50,39,69,69,54])).index("69,69") / 3) -
如果您只需要处理 0-255 范围内的数字,这里有一个可爱的快捷方式,应该是超快的:
bytes(L).index(bytes(s)) -
不要相信这是一个现有问题的完全重复 - 这个问题比建议的问题更简单。这是我的解决方案:
list(zip(x, x[1:])).index((69,69))。如果 a 是[69,69],那么这将起作用:list(zip(x, x[1:])).index(tuple(a)) -
通过对我上面答案的解释:解决方案将列表与减去第一个元素的相同列表一起压缩。这会生成一个包含 (i 和 i+1) 个位置的对列表。将其转换为列表,然后搜索有问题的对
(69,69)
标签: python algorithm python-3.x list sequences