在python中搜索字节序列

问题描述 投票:0回答:2

我收到如下数组:

array('b', [71, 69, 84, 32, 47, 97, 115, 115, 101])

我想知道其中是否出现了特定的字节序列,例如

47 98 113

最快且最Python化的方法是什么?

arrays python-2.7 search
2个回答
1
投票

首先使用

.tolist()
将其转换为列表,然后如果您想搜索确切的序列,这可能会有所帮助:

a = [71, 69, 84, 32, 47, 97, 115, 115, 101]
b = [47, 98, 113]
def search(what, where):
    if len(what) > len(where):
        return False
    idx = [i for i, x in enumerate(where) if what[0] == x]
    for item in idx:
        if where[item:item+len(what)] == what:
            return True
    return False
search(b,a)
#False       

0
投票

你只需要做

a.查找(b)

如果不在其中,它将返回 -1,否则将返回在 a 中找到 b 开头的索引号

© www.soinside.com 2019 - 2024. All rights reserved.