그 전에 길이 코딩한게 생각해보니까 텍스트라서, 일치하는 길이가 10이 넘어가면 곤란하게 됐음. 그래서 16진수로 바꿔보고 싶은데… (16진수는 15까지 한 글자로 표시 가능) 이게 문제는 리스트에 글자로 들어가면 안된단말이지.
# 전체 텍스트를 slicing하는 for문. 이 안에는 찾을 영역과 찾아야 할 영역이 포함되어 있다.
# 한 글자일때는 찾을 영역이 존재하지만 찾아야 하는 글자가 없으므로 첫 글자는 0이다.
find_list=[]
length=len(text)
for i in range(1,length+1):
if len(text[0:i]) == 1:
find_list.append(0)
else:
text_sub=text[0:i] # 전체 텍스트
find=text_sub[0:i-1]# 찾을 범위
max_list=[]
for j in range(1,len(find)+1):
subset=text_sub[j:] # 찾을 텍스트
find_values=0
if subset in find:
max_list.append(len(subset))
else:
max_list.append(0)
max_list=set(max_list)
max_list=list(max_list)
max_values=max(max_list) # 리스트에서 최대값을 추출한다
find_list.append(max_values) # 넣어주시죠
# 이상하다... 왜 제시한거랑 결과가 다르지?
크게 만질 부분은 이 부분 중에서도
for j in range(1,len(find)+1):
subset=text_sub[j:] # 찾을 텍스트
find_values=0
if subset in find:
max_list.append(len(subset))
else:
max_list.append(0)
max_list=set(max_list)
max_list=list(max_list)
max_values=max(max_list) # 리스트에서 최대값을 추출한다
find_list.append(max_values) # 넣어주시죠
이 부분이다. 진수변환이라도 하지 않는 이상 A, B, C, D, E, F는 일반적으로 문자열이므로 그냥 리스트에 들어가면
TypeError: '>' not supported between instances of 'int' and 'str'
이분이 저를 반기그등여… 이것도 해봐야 할 것 같은데 10에서 일단 처리부터 해보고 생각해봐야 할 듯. 최대값 매기는 리스트에는 숫자로 들어가되, 최대값이 10, 11, 12, 13, 14, 15면 각각 출력하는 리스트에 A, B, C, D, E, F로 넣는 방법이 최선일 듯 하다. 이러다가 진법 확장되면 골치아플텐데 괜찮아요 보통은 16진수도 잘 몰라서 아니 안괜찮잖아 그럼
Reply