조건)
- numbers라는 빈 리스트를 만들고 리스트를 출력한다.
- append를 이용해서 numbers에 1, 7, 3, 6, 5, 2, 13, 14를 순서대로 추가한다. 그 후 리스트를 출력한다.
- numbers 리스트의 원소들 중 홀수는 모두 제거한다. 그 후 다시 리스트를 출력한다.
- numbers 리스트의 인덱스 0 자리에 20이라는 수를 삽입한 후 출력한다.
- numbers 리스트를 정렬한 후 출력한다.
피드백)
1. append 함수는 numbers.append(1) 이렇게 []사용 안하고 직접 인덱스 수치 입력
i = 0
while i < len(numbers):
if numbers[i] % 2 == 1:
del.numbers[i]
i += 1
2. 위와 같이 작성한 코드는 두 가지 요소가 틀렸다.
2-1. if문 다음에 수행문은 들여쓰기 해야함.
2-2. del문은 .을 찍지 않는다..
# 빈 리스트 만들기
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]
i += 1
print(numbers)
# numbers의 인덱스 0 자리에 20이라는 값 삽입
numbers.insert(0,20)
print(numbers)
# numbers를 정렬해서 출력
numbers = sorted(numbers)
print(numbers)
결과에 없어야 할 7이 추가되어 있음...
그렇다면 리스트에서 1번 인덱스값이 들어가 있는 것인데 왜지?
챗지피티 찬스 사용..
list 값이 del되면 인덱스가 달라지기 때문에 연속된 홀수값이 삭제되지 않는 것이었다..!!
예를들어 달리기 2등하는 사람을 제치면 몇 등이 되는가? 라는 넌센스 퀴즈가 있는데,
이때 '1등이겠지' 라고 생각하는 것과 유사한 논리 오류가 내 머릿속에서 발생한 것.
아무튼 리스트 인덱스 값은 2등처럼 삭제되면 빈자리를 다음 인덱스 값이 채우기 때문이다..!
# 빈 리스트 만들기
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 = sorted(numbers)
print(numbers)
결과적으로 while문에 else처리를 해서 삭제처리 되었다면 다시 삭제된 인덱스값부터 시작할 수 있게 바꿔줘야 한다.
피드백)
1. list문은 del을 하면, 인덱스 값이 바로 채워지기 때문에 while문을 사용할 때, else처리 해주어야 한다.
2. for문을 사용하면 한줄로 코딩 가능하지만 아직 안배움;
numbers = [n for n in numbers if n % 2 == 0]
리스트 뒤집기
numbers = [2, 3, 5, 7, 11, 13, 17, 19]
# 리스트 뒤집기
for left in range(round(len(numbers) / 2)):
right = len(numbers) - left -1
numbers[right], numbers[left] = numbers[left], numbers[right]
print("뒤집어진 리스트: " + str(numbers))
급한 관계로 여기에 추가...
리스트값을 바꿔주려면 = 를 활용하여 바꾸는 순서를 우측에 넣어주면 된다ㅣ!
'데이터분석 > python' 카테고리의 다른 글
| #8. 피타고라스 삼조 (1) | 2025.10.27 |
|---|---|
| for문 정리 (0) | 2025.10.27 |
| #5. 환전 서비스 (0) | 2025.10.27 |
| #4. 온도 단위 바꾸기 (0) | 2025.10.27 |
| 파이썬 list 함수 요약 (0) | 2025.10.26 |