파이썬 순차탐색으로 조건에맞는 위치를 찾아내려면???
조회수 704회
f=open('data.txt', mode='r', encoding='utf-8')
lines = f.readlines()
print(type(lines))
print(lines)
print(lines[1])
start = int(input("시작 회차 입력: "))
last = int(input("마지막 회차 입력: "))
lst=[]
for i in range(start,last+1):
lst.append(str(i)+'\n')
print("찾는 회차의 합",len(lst))
lst.reverse()
print(lst)
print(lines)
print(lst[0])
print(lines[0])
list_group=list(set(lst).intersection(lines))
list_group.sort()
print("조회한 구간",list_group)
print("조회한 구간 길이",len(list_group))
index_num=[]
for i in list_group:
for d in lines:
if d == i:
index_num.append(lines.index(d))
continue
index_num.sort()
print(index_num)
index_odd_oven=[]
for i in index_num:
index_odd_oven.append(i+1)
print(index_odd_oven)
odd_count = 0
even_count = 0
for i in index_odd_oven:
if lines[i] == "짝\n":
even_count+=1
else:
odd_count+=1
print("조회한 홀 갯수: ", odd_count)
print("조회한 짝 갯수: ", even_count)
print("총 합계: ", odd_count+even_count)
도와주신 덕분에 해결되었습니다....
-
(•́ ✖ •̀)
알 수 없는 사용자 - 〉
1 답변
-
import sys lines=['홀', '짝', '홀', '짝', '홀', '짝', '홀', '홀'] start = int(input("처음 수 입력: ")) last = int(input("마지막 수 입력: ")) if start < 0 : sys.exit(0) if last > len(lines): sys.exit(0) odd = 0 even = 0 oddloc = [] evenloc = [] for idx, i in enumerate(lines[start:last]): if i == '홀': odd += 1 oddloc.append(idx) elif i == '짝': even += 1 evenloc.append(idx) print('') print('홀의 갯수 : %d'%odd) print('홀의 위치들',oddloc) print('짝의 갯수 : %d'%even) print('짝의 위치들',evenloc) #처음 수 입력: 0 #마지막 수 입력: 8 #홀의 갯수 : 5 #홀의 위치들 [0, 2, 4, 6, 7] #짝의 갯수 : 3 #짝의 위치들 [1, 3, 5]
질문이 잘 이해가지 않지만 인덱스에 대해서 고민하시는거 같은데... 맞는지 모르겟네요.
enumerate 를 활용해보시는게 도움될거같아요..
댓글 입력