在 python 中使用数组进行序列搜索
Sequence search using arrays in python
所以,我有以下 2 个数组:
a = [1,2,3]
b = [1,2,4,1,2,5,1,3,2,4,5,11,23,24,51,72,5,91,19,0,1,2,4,2,3,45,3,2,1,2,6,7,56,78,354,3,2,1,0,111,15,1,2,3,5,6,4,7,3,8,910,678]
我需要使用 Python 在数组 B 中搜索数组 A(以完全相同的顺序)。我尝试了两种不同的方法来解决这个问题。第一种方法导致索引错误,我根本无法解决。第二种方法以二进制答案 True/False 的形式得到了预期的结果。我现在没主意了。请帮助我以合适的方式解决这个问题。
#one of the attempts that i made
from collections import Counter
a = [1,2,3]
b = [1,2,4,1,2,5,1,3,2,4,5,11,23,24,51,72,5,91,19,0,1,2,4,2,3,45,3,2,1,2,6,7,56,78,354,3,2,1,0,111,15,1,2,3,5,6,4,7,3,8,910,678]
print (a,b)
def string_conv(array):
string = ''
for i in range(len(array)):
string += str(array[i])
return string
a = string_conv(a)
b = string_conv(b)
print (a,b)
def array_check(string, substring):
c = Counter(string)
for char in substring:
if c[char] > 0:
c[char] -= 1
else:
return False
return True
print (array_check(a, b))
可能有更优雅的方法,但这应该有效:
for i in range(len(b) - len(a)):
for j in range(len(a)):
if b[i + j] == a[j]:
if j == len(a) - 1:
print("Found it!")
else:
continue
else:
break
所以,我有以下 2 个数组:
a = [1,2,3]
b = [1,2,4,1,2,5,1,3,2,4,5,11,23,24,51,72,5,91,19,0,1,2,4,2,3,45,3,2,1,2,6,7,56,78,354,3,2,1,0,111,15,1,2,3,5,6,4,7,3,8,910,678]
我需要使用 Python 在数组 B 中搜索数组 A(以完全相同的顺序)。我尝试了两种不同的方法来解决这个问题。第一种方法导致索引错误,我根本无法解决。第二种方法以二进制答案 True/False 的形式得到了预期的结果。我现在没主意了。请帮助我以合适的方式解决这个问题。
#one of the attempts that i made
from collections import Counter
a = [1,2,3]
b = [1,2,4,1,2,5,1,3,2,4,5,11,23,24,51,72,5,91,19,0,1,2,4,2,3,45,3,2,1,2,6,7,56,78,354,3,2,1,0,111,15,1,2,3,5,6,4,7,3,8,910,678]
print (a,b)
def string_conv(array):
string = ''
for i in range(len(array)):
string += str(array[i])
return string
a = string_conv(a)
b = string_conv(b)
print (a,b)
def array_check(string, substring):
c = Counter(string)
for char in substring:
if c[char] > 0:
c[char] -= 1
else:
return False
return True
print (array_check(a, b))
可能有更优雅的方法,但这应该有效:
for i in range(len(b) - len(a)):
for j in range(len(a)):
if b[i + j] == a[j]:
if j == len(a) - 1:
print("Found it!")
else:
continue
else:
break