두 개의 특정 하위 문자열을 찾을 수 있는지 검색하고 찾을 수있는 큰 하위 문자열 목록이 있습니다. 논리는 첫 번째 시퀀스를 찾은 다음 찾은 경우 두 번째 하위 문자열을보고 모든 일치를 반환합니다 (16 문자 시퀀스의 처음 15자를 기준으로 함). 첫 번째 시퀀스를 찾을 수없는 경우 두 번째 시퀀스 만 찾고 마지막으로 찾지 못하면 기본값은 0입니다. 그런 다음 일치 항목이 목록에 추가되고 추가로 처리됩니다.하위 문자열 검색 목록을 한 번에 여러 조건을 반환합니다.
dataA = ['0100101010001000',
'1001010100010001',
'0010101000100010',
'0101010001000110',
'1010100010001110',
'0101000100011100',
'1010001000111010',
'0100010001110100',
'1000100011101000',
'0001000111010000']
A_vein_1 = [0,1,0,0,1,0,1,0,1,0,0,0,1,0,0,0]
joined_A_Search_1 = ''.join(map(str,A_vein_1))
print 'search 1', joined_A_Search_1
A_vein_2 = [1,0,0,1,0,1,0,1,0,0,0,1,0,0,0]
joined_A_Search_2 = ''.join(map(str,A_vein_2))
match_A = [] #empty list to append closest match to
#Match search algorithm
for i,text in enumerate(data):
if joined_A_Search_1 == text:
if joined_A_Search_2 == data[i+1][:-1]:
print 'logic stream 1'
match_A.append(data[i+1][-1])
if joined_A_Search_1 != text:
if joined_A_Search_2 == text[:-1]:
print 'logic stream 2'
#print 'match', text[:-1]
match_A.append(text[-1])
print ' A matches', match_A
try:
filter_A = max(set(match_A), key=match_A.count)
except:
filter_A = 0
print 'no match A'
filter_A = int(filter_A)
print '0utput', filter_A
문제는 내가 실제로 엄격한 하나 또는 다른 일을 할 때 나는이 경우, 두 논리 스트림 1과 논리 스트림 2의 수익을 얻을 수 있습니다 : 다음과 같이 사용되는 현재 코드는 출력 예에만 논리 흐름 (1)은 다음과 같다 :
search 1 0100101010001000
search 2 100101010001000
logic stream 1
logic stream 2
logic stream 1
logic stream 2
logic stream 2
(참고 : 목록의 목적을 위해, 직접적으로뿐만 아니라, 상기 프린트 아웃을 단축되어, 데이터 입력이 치환 된 이 게시물 및 오류 추적)
코드의 목적은 그 누락 마지막 숫자는 제 2 시퀀스 (하단 따라서 최대 카운트 코드)를 위해 손쉽게 찾을 것이다. 논리 스트림 모두가 filter_A 목록에 기여하면 정확도가 손실됩니다. 그것이 엄격하게 하나의 경우 또는 다른 것을 필요로하는 이유입니다. 나는 이것이 논리의 OR 게이트 유형으로 생각 될 수 있다고 생각한다. – paperstsoap