Python - Deleting Elements From List

sihwan_e·2020년 4월 22일
0

Python Dic

목록 보기
6/13

Assignment
Input으로 주어진 리스트에서 홀수는 전부 지우고 짝수만 남은 리스트를 리턴해주세요.
리스트의 요소들은 전부 숫자값이고 총 요소 수는 5개 입니다.

예를 들어, 다음과 같은 list가 input으로 주어졌다면:

[1, 2, 3, 4, 5]

다음과 같은 결과물이 리턴되어야 합니다.

[2, 4]

#이미 주어진 리스트에서 append가 의미가 있는가? no
지우다 > del 를 이용

#짝수를 나타내는법> 해당요소에 2를 나눴을떄 나머지가 없다.
리스트이름[index]%2 != 0

리스트에서 앞과 뒤 먼저 제거하는 것에 차이가 있는가?
1. 앞에서 먼저 제거했을때의 코드


if num[0]%2!=0:
	del num[0]
if num[1]%2!=0:
	del num[1]
if num[2]%2!=0:
	del num[0]
if num[3]%2!=0:
	del num[0]
if num[4]%2!=0:
	del num[0]
return num
Traceback (most recent call last): (이건 실수로 numbers을 num으로 했을때 의 오류)
  File "/home/runner/unit_tests.py", line 22, in test_remove_odd_numbers
    self.assertEquals(remove_odd_numbers([2,4,6,8,10]), [2,4,6,8,10])
  File "/home/runner/unit_tests.py", line 6, in remove_odd_numbers
    if num[0]%2!=0:
NameError: name 'num' is not defined. 

( 오류)

Traceback (most recent call last):
  File "/home/runner/unit_tests.py", line 23, in test_remove_odd_numbers
    self.assertEquals(remove_odd_numbers([1,4,6,8,5]), [4,6,8])
  File "/home/runner/unit_tests.py", line 14, in remove_odd_numbers
    if numbers[4]%2!=0:
IndexError: list index out of range
 if numbers[4]%2!=0:
       del numbers[4]
   if numbers[3]%2!=0:
       del numbers[3]
   if numbers[2]%2!=0:
       del numbers[2]
   if numbers[1]%2!=0:
       del numbers[1]
   if numbers[0]%2!=0:
       del numbers[0]
   return numbers   

1 4 6 8 5
[0]  4,6,8,5
[1]  4,6,8,5
[2]  4,6,8,5
[3] 4,6,8
[4]  index위치에 객체 없음

    1 4 6 8 5
[4]  1,4,6,8
[3]  1,4,6,8
[2]  1,4,6,8
[1]  1,4,6,8,
[0]  4,6,8,

라고 이해했다. 만약에 틀리면 향후 수정해야겠다.

나중에 for문으로 다시 풀어 볼것.

profile
Sometimes you gotta run before you can walk.

1개의 댓글

comment-user-thumbnail
2020년 9월 21일

옛날 글 귀엽네

답글 달기