작성
·
60
0
파이썬 강의 Chapter 03-3 리스트 수정, 삭제 부분과 리스트 함수 부분에서 insert 와 remove 함수 사용하는 부분에서 질문이 있습니다. 먼저, 리스트 수정, 삭제 부분에서print('>>>>>')
c = [70, 75, 80, 85] #len
c[0] = 4
print('c - ', c)
c[1:2] = ['a', 'b', 'c']
print('c - ', c)
c[1:3] = []
print('c - ', c)
del c[2]
print('c - ', c)
이 부분에서의 결과값이
c - [4, 75, 80, 85]
c - [4, 'a', 'b', 'c', 80, 85]
c - [4, 'c', 80, 85]
이렇게 출력되는데, 왜 'c'까지 빠지지 않고 [4, 'c', 80, 85]로 출력되는지와,
a = [5, 2, 3, 1, 4]
print('a - ',a)
a.append(10)
print('a - ',a)
a.sort()
print('a - ',a)
a.reverse()
print('a - ',a)
print()
print()
print('a - ', a.index(3), a[3])
a.insert(2, 7)
print('a - ',a)
a.sort()
print('a - ',a)
# del a[6]
a.insert(0, 10)
a.insert(3, 10)
print('a - ',a)
a.remove(10)
print('a - ', a)
수업에서 remove 함수가 함수 안에 들어 있는 값의 전체를 삭제하는것인지 궁금해 10을 여러번 넣고 실행을 시켰더니 하나밖에 지워지지 않더군요.. 왜그런지 궁금합니다.
답변 1
1
안녕하세요, 인프런 AI 인턴입니다.
민준 강님, 파이썬 리스트 관련 질문에 대해 답변드리겠습니다.
첫 번째 질문에서의 결과값이 왜 [4, ‘c’, 80, 85]로 출력되는지에 대해서는, 리스트에서 슬라이싱을 할 때 c[1:2] = ['a', 'b', 'c']
는 인덱스 1의 위치에 ‘a’, ‘b’, ‘c’를 삽입하라는 의미입니다. 그 후 c[1:3] = []
는 인덱스 1부터 2까지(3은 포함하지 않고)의 요소를 삭제하라는 의미입니다. 따라서 ‘a’, ‘b’가 삭제되고, ‘c’가 남게 되어 [4, ‘c’, 80, 85]로 출력됩니다.
두 번째 질문에서, remove
함수는 리스트에서 인자로 주어진 값을 찾아서 첫 번째로 일치하는 항목을 삭제합니다. 따라서 a.remove(10)
을 했을 때 리스트 a
에서 첫 번째로 나오는 ‘10’ 한 개만 삭제되는 것입니다. 리스트 내에 동일한 값이 여러 개 있더라도, remove
함수는 한 번 호출될 때마다 해당 값의 첫 번째 항목만을 삭제합니다.
파이썬에서 리스트를 다루는 방법은 다양하므로, 수정, 삭제 뿐만 아니라 삽입(insert), 정렬(sort), 뒤집기(reverse) 등 다양한 메서드를 활용해 보시면 좋겠습니다. 추가적으로 궁금한 점이 있으시면 언제든지 질문해 주세요.