프로그래밍 언어/파이썬

파이썬 10. 리스트

닉네임못짓는사람 2020. 9. 21. 10:08
반응형

이번 글에서는 리스트에 대해서 알아보도록 하겠습니다.

 

리스트


리스트는 파이썬에서 지원하는 자료형 중 하나로, 숫자, 문자 등의 데이터들을 한곳에 모아두는 자료형입니다.

list1 = [1, [3, "123"], 3.03, "qwe"]

위와 같이 하나의 리스트 안에 정수, 실수, 문자열 등을 저장할 수 있습니다.

또한 또 다른 리스트 자체를 저장할 수도 있는데, 이것을 이중, 그 리스트안에 또 리스트를 저장하면

삼중 리스트라고하며 이러한 구조를 다중 리스트라고 합니다.

리스트를 만들 때에는 각각의 데이터들(이들을 요소라고 합니다.)을 쉼표로 구분하고, 전체를 대괄호([ ])로 묶어주시면 됩니다.

 

리스트는 여러가지 부분에서 문자열과 닮은 점이 있습니다.

 

리스트 연산자

먼저, 리스트는 문자열과 마찬가지로 연산자를 사용해 더하거나(+), 곱할(*) 수 있습니다.

list1 = [3, 3.02, "123"]
list2 = [2, "qwe"]
print(list1 + list2)
print(list1 * 3)

위와 같이 덧셈을 사용해 두 문자열을 연결하거나, 곱셈으로 문자열을 여러번 출력할 수 있습니다.

 

리스트 인덱싱, 슬라이싱

다음으로 인덱싱과 슬라이싱을 적용할 수 있습니다.

각 요소에 접근하는 방법은 list1[0], list[1]과 같이 사용해주시면 되고, 인덱스번호는 0부터 시작합니다.

또한 가장 뒤의 요소를 고르고 싶다면 -1을 인덱스번호로 주는 것도 동일합니다.

list1 = [1, [3, "123"], 3.03, "qwe"]
print(list1[0])
print(list1[1])

위에서 list1[1]는 list1의 두 번째 요소로, 또 다른 리스트인데, 리스트를 출력할 때는 위와 같이 대괄호로 묶여서 출력됩니다.

또한 위에서 말한 다중 리스트의 경우에 대해서 말해보자면,

위의 예제는 이중 리스트인데, list1의 두 번째 요소에 있는 리스트의 요소에 접근하고 싶을 때에는

list1[1][0]또는 list1[1][1]과 같이 접근하시면 됩니다.

 

가장 앞의 인덱스번호를 가장 바깥쪽에 있는 리스트의 인덱스번호로 지정하시고,

순차적으로 그 안에 있는 리스트의 인덱스번호를 지정하는 방식입니다.

 

슬라이싱도 문자열과 완전히 동일하게 동작합니다.

str1 = "Hello World"
list1 = [1, [3, "123"], 3.03, "qwe"]
print(list1[0:3])
print(str1[0:3])

 

다음은 리스트에서 값을 수정하거나, 삭제하는 법에 대해 알아보겠습니다.

리스트 수정

먼저 인덱싱을 사용해 리스트 내의 요소 하나를 원하는 값으로 변경할 수 있습니다.

list1 = [3, 3.02, "123"]
print(list1)
list1[0] = "list"
print(list1)

 

위와 같이 list1의 첫 번째 요소를 "list"로 바꿨습니다.

다음은 일정한 범위의 리스트를 바꿔보도록 하겠습니다.

list1 = [3, 3.02, "123"]
print(list1)
list1[0:2] = [1,2,3,4]
print(list1)

위와 같이 슬라이싱을 할 때처럼 리스트의 요소를 변경할 수 있는데, 여기서 특이한 점이 있습니다.

직관적으로 list1[0:2]의 값을 바꾼다고 하면 list1의 첫 번째, 두 번째 요소의 값만 바꾼다고 생각할 수 있는데,

실제로는 두 요소의 값을 변경하는게 아니고 리스트의 첫 번째 요소와 두 번째 요소를 새로운 값들로 대체하는 것입니다.

예를 들어 아래와 같이 코드를 변경해봅시다.

list1 = [3, 3.02, "123"]
print(list1)
list1[0:2] = [1]
print(list1)

이렇게 코드를 바꾸면, 리스트의 첫 번째, 두 번째 요소를 각각 1로 변경하는 것이 아닌 해당 범위의 리스트 자체를

새로운 값으로 바꿔버렸습니다.

때문에 위와 같은 방법을 사용할 때 범위 내의 리스트가 모두 바뀐다는 사실을 인지하고 있어야 합니다.

 

리스트 삭제

다음은 리스트의 요소를 삭제하는 방법입니다.

먼저, 빈 대괄호([ ])를 사용해서 요소를 삭제할 수 있습니다.

list1 = [3, 3.02, "123"]
print(list1)
list1[0:1] = []
print(list1)

여기서는 세미콜론을 사용해서 범위를 지정하고, 그 범위를 [ ]로 바꾸어서 리스트 요소를 삭제합니다.

위의 코드의 경우 0:1, 즉 list1의 첫 번째 요소만 선택해서 삭제한 것입니다.

 

이외에도 del함수를 사용해서 리스트의 요소를 삭제할 수 있습니다.

list1 = [3, 3.02, "123"]
print(list1)
del list1[1]
print(list1)

위와 같이 리스트의 두 번째 요소를 선택해서 삭제할 수 있습니다.

그리고 이 방법도 세미콜론(:)으로 범위를 지정해서 삭제할 수 있습니다.

list1 = [3, 3.02, "123"]
print(list1)
del list1[0:2]
print(list1)

위의 코드는 list1의 첫 번째 요소부터 세 번째 요소의 직전 요소까지의 값을 삭제하는 코드입니다.

마지막으로 리스트 자체를 제거하고 싶다면 아래와 같이 코드를 작성해주시면 됩니다.

list1 = [3, 3.02, "123"]
print(list1)
del list1
print(list1)

코드를 실행하시면 첫 번째 출력 이후 오류가 발생할 것입니다.

리스트 자체를 삭제했기 때문에 출력할 리스트를 파이썬이 찾지 못해서 발생하는 오류입니다.

이 del함수를 통해 파이썬 내의 객체들을 삭제할 수 있기 때문에 유용하게 사용할 수 있습니다.

 

이번 글은 이 정도로 마치도록 하겠습니다.

감사합니다.

반응형

'프로그래밍 언어 > 파이썬' 카테고리의 다른 글

파이썬 12. 튜플  (0) 2020.09.23
파이썬 11. 리스트 관련 함수  (0) 2020.09.22
파이썬 9. 문자열 함수  (0) 2020.09.18
파이썬 8. 문자열 포매팅  (0) 2020.09.18
파이썬 7. 문자열 슬라이싱  (0) 2020.09.18