38번 문제 질문드립니다 ㅜ
279
작성한 질문수 27
- 다음 리스트 변수에서 음수 데이터를 삭제하고, 양수만 가진 리스트 변수로 만들고, 해당 변수를 출력하세요.
a = [0, -11, 31, 22, -11, 33, -44, -55]
이러한 문제입니다.
제가 낸 해답.
a = [0, -11, 31, 22, -11, 33, -44, -55]
for i in a:
if i<=0:
a.remove(i)
print(i)
답이 [0,31,22,-44,-55]가 나옵니다...
개념이 안잡혀있는건지.... 왜 이렇게나오는지 도저히 모르겠네요 ㅠㅠ
a = [0, -11, 31, 22, -11, 33, -44, -55] for i in a: if i<=0: a.remove(i) print(i)
답이 [0,31,22,-44,-55]가 나옵니다...
개념이 안잡혀있는건지.... 왜 이렇게나오는지 도저히 모르겠네요 ㅠㅠ
답변 1
1
안녕하세요. 함문주님!
문주님이 작성해주신 코드에서 for문을 순회하면서 만약 해당 값이 음수라는 것이 확인되면 리스트에서 값을 삭제합니다.
그렇게 진행하게 된다면, 음수일 때 값이 삭제되므로 -11에서 삭제가 일어납니다.
(문주님 코드에 i <= 0으로 되어있는데, i<0으로 수정했다고 가정한 후에 과정을 아래에 작성했습니다.)
이러한 방식으로 계속 진행하다보면,
- 현재 인덱스 : 0
값 : 0 (통과)
현재 리스트 : [0, -11, 31, 22, -11, 33, -44, -55] - 현재 인덱스 : 1
값 : -11 (삭제)
현재 리스트 : [0, 31, 22, -11, 33, -44, -55] - 현재 인덱스 : 2
값 : 22 (통과)
현재 리스트 : [0, 31, 22, -11, 33, -44, -55] - 현재 인덱스 : 3
값 : -11 (삭제)
현재 리스트 : [0, 31, 22, 33, -44, -55] - 현재 인덱스 : 4
값 : -44 (삭제)
현재 리스트 : [0, 31, 22, 33, -55] - 리스트 길이가 5이고, 마지막 인덱스가 4이므로 for문 종료
위와 같은 방식으로 진행되기 때문에, 생각하시는대로 답이 나오지 않았던 것입니다.
for문 안의 조건문을 살짝 변형하면 답 얻으실 수 있을 것 같습니다.
혹시 궁금한 점 있으시면 댓글 남겨주세요.
도움이 되셨으면 좋겠습니다. :)
크롤링, 영상을 따라해도 제미나에게 물어봐도 안되요
0
28
1
정규표현식 및 여러 코드 꼭 외워야 하나요?
0
35
1
리스트 함수형도 정수 데이터 받을 수 있나요?
0
45
1
크롤링 관련 질문
0
62
1
문제 답이 없는 버전은 없나요?
0
74
1
requests, BeautifulSoup 임포트 부분에 대해 문의드립니다.
0
83
1
업데이트 강의
0
97
2
선생님 강의중에서 sqlite3 강의를 제공한 강의가 있나요?
0
123
2
연습용 예제 파일
0
76
1
lxml 관련 오류
0
106
1
SAVE Request 창 띄우는 법
0
90
1
포스트맨 사용법이 바뀌어서 강의를 따라가지 못하겠습니다. 2
0
72
1
포스트맨 사용법이 바뀌어서 강의를 따라가지 못하겠습니다.
0
93
1
예제 2, 4, 6에 대한 풀이 방식 질문.
0
89
1
문제 파일
0
78
1
pdf 파일 내 코드 복붙시 공백
0
291
1
데이터 저장 강좌 문의 건
0
95
1
" " 와 ' '의 차이를 알고 싶습니다
0
241
1
Exercise 22. 문자열 다루기 (strip)
0
131
1
list함수로 리스트 선언하면 실패하는데 이유는 무엇입니까?
0
187
1
셀 삽입후 바로 기입이 가능합니까?
0
139
2
주피터 노트북 마우스 스크롤? 오류
0
1543
2
등호 2개('==')의 의미가 뭐죠?
0
458
2
페이지가 넘어갈 때 url 변하지 않는 경우
0
261
1





