파이썬 리스트 값에서 연속된 값을 제거하고 출력하고싶습니다.
조회수 453회
# 데이터를 입력받음
# 입력받은 데이터가 5개이상 같은수가나오면 해당 데이터 삭제
# 나머지 데이터를 반환
number = int(input("문항 수를 입력하세요!"))
def get_data():
list = []
result_list = []
for i in range(number):
data = int(input(f"{i+1}번 답안을 입력하세요!"))
list.append(data)
if(list[0:5]==[1,1,1,1,1]):
del list[0:5]
result_list = list
print(result_list)
else:
print(list)
get_data()
print(get_data)
제가 일단 작성한건 범위를 정해놓고 그 범위에 연속된 값이 나오면 삭제되도록 구현했는데
예를들어 리스트값에서 [2,5,4,3,2,1,1,1,1,1,2,3,5,4,7,5,6] 이렇게 중간에 연속된값이 나와도 삭제 하고싶습니다.
1 답변
-
잘 모르겠어서 좀 무식하게 접근해 봤습니다.
dabandl = [2,5,4,3,2,1,1,1,1,1,2,3,5,4,7,5,6] for beonho, daban in enumerate(dabandl): if beonho >= 4 : daban1 = dabandl[beonho - 1] daban2 = dabandl[beonho - 2] daban3 = dabandl[beonho - 3] daban4 = dabandl[beonho - 4] if daban == daban1 and daban1 == daban2 and daban2 == daban3 and daban3 == daban4 : del dabandl[beonho - 4 : beonho + 1] # daban도 없애야 하므로 +1 필요 print(dabandl)
댓글 입력