[Python]_리스트 함수 활용하기

hanseungjune·2022년 6월 10일
0

Python

목록 보기
14/38

풀이

# 빈 리스트 만들기
numbers = []
print(numbers)

# numbers에 값들 추가
list = [1,7,3,6,5,2,13,14]
i = 0

while i < len(list):
    numbers.append(list[i])
    i += 1
# 코드를 입력하세요
print(numbers)

# numbers에서 홀수 제거
i = 0

while i < len(numbers):
    if numbers[i]%2 == 1:
        del numbers[i]
    else:
        i += 1
        continue
# numbers를 정렬해서 출력
print(numbers)

# numbers의 인덱스 0 자리에 20이라는 값 삽입
numbers.insert(0, 20)

# 코드를 입력하세요
print(numbers)

# numbers를 정렬해서 출력
numbers.sort()
# 코드를 입력하세요
print(numbers)

모범답안과의 차이점은 나는 코드를 복붙하는게 귀찮아서 반복문을 통해서 .append 하게 되었다. 이게 잘한 짓인지는 모르겠지만 나도 귀차니즘이 좀 있는 거 같다 ㅎㅋㅋㅋ

i = 0
while i < len(numbers):
    if numbers[i]%2 == 1:
        del numbers[i]
    else:
        i += 1
        continue

그리고 해당 코드를 작성하는 것에 시간이 좀 걸렸는데 셀프디버깅의 중요성을 깨달았다. 알고리즘의 순서는 다음과 같았다.

i 가 0이고 numbers[i]1이었다. 그래서 삭제 대상이상이어서 del 을 사용하여 삭제하였다. 그러면 number[7,3,6,5,2,13,14] 가 되는데 이러한 흐름을 생각 못하고 인덱스에 1을 더하였다. 그래서 7을 넘어가는 상황이 발생하였다. → 배열의 요소를 조건에 따라 지울 때는 인덱스를 증가시키지 말자가 이번 교훈

모범답안

# 빈 리스트 만들기
numbers = []
print(numbers)

# numbers에 값들 추가
numbers.append(1)
numbers.append(7)
numbers.append(3)
numbers.append(6)
numbers.append(5)
numbers.append(2)
numbers.append(13)
numbers.append(14)
print(numbers)

# numbers에서 홀수 제거
i = 0
while i < len(numbers):
    if numbers[i] % 2 == 1:
        del numbers[i]
    else:
        i += 1
print(numbers)

# numbers의 인덱스 0 자리에 20이라는 값 삽입
numbers.insert(0, 20)
print(numbers)

# numbers를 정렬해서 출력
numbers.sort()
print(numbers)
profile
필요하다면 공부하는 개발자, 한승준

0개의 댓글