Notice
Recent Posts
Recent Comments
Link
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
Tags
more
Archives
Today
Total
관리 메뉴

민수야, 너도 할 수 있어

Python 공부 (4) - 자료형(리스트) 본문

언어/python

Python 공부 (4) - 자료형(리스트)

devpola 2020. 1. 30. 00:00

자료형 - 리스트(List)

    리스트는 다양한 요소들의 모음이다. 리스트가 가질 수 있는 요소로는 숫자, 문자열 그리고 리스트 자체가 있다.(나중에 배울 자료형들도 리스트에 넣을 수 있다.) 리스트의 생성 방법은 아래와 같이 대괄호로 각 요소들을 감싸주고, 각 요소들을 쉼표로 구분해 주면된다.

a = []    # 비어있는 리스트도 생성가능
b = [1,2,3]
c = [1,2,'hello']
d = [1,2,[3,4]]    # 리스트 자체를 요소로 가질 수 있다.



리스트의 인덱싱과 슬라이싱

     리스트도 문자열과 마찬가지로 인덱싱과 슬라이싱을 사용할 수 있다.

  • 리스트의 인덱싱

     문자열의 인덱싱과 마찬가지로 리스트 이름[번호] 처럼 사용하면 된다.

a = [1,2,3]
print(a[0])    #1
print(a[-1])#3

위 예제에서 a[0]은 리스트 a의 첫 번째 요소값을, a[-1]은 마지막 요소값을 반환한다.

  • 이중 리스트의 인덱싱
a = [1,2,[3,4,5]]
print(a[2][1])    #4
print(a[-1][2]) #5
  • 리스트의 슬라이싱

     문자열의 슬라이싱과 마찬가지로 리스트 이름[시작번호 : 끝번호] 처럼 사용하면 된다. 여기서도 끝번호에 해당하는 요소값은 반환하는 범위에 포함되지 않는다.

a = [1,2,3,4]
b = a[0:2]
print(b)  #[1,2]



리스트 연산자

     리스트도 문자열과 마찬가지로 +* 기호를 사용할 수 있다.

  • 리스트 연결하기 (+)
a = [1,2,3]
b = [4,5]
c = a + b
print(c)    #[1,2,3,4,5]
  • 리스트 반복하기 (*)
a = [1,2,3]
b = a * 2
print(b)    #[1,2,3,1,2,3]



리스트의 수정, 변경과 삭제

  • 리스트의 요소값 수정하기
a = [1,2,3]
a[2] = 4
print(a)    #[1,2,4]

    마지막 요소값이 3에서 4로 변경되었다.

  • 리스트에서 연속된 범위의 값 수정하기
a = [1,2,3]
a[1:2] = ['a','b']
print(a)    #[1,'a','b',3]

    여기서 주의할 점은 a[1:2] = ['a','b']a[1] = ['a','b']로 수정된 리스트는 서로 전혀 다르게 된다.

a = [1,2,3]
a[1] = ['a','b']
print(a)    #[1,['a','b'],3]

    위의 예제들을 통해서, 리스트의 슬라이싱은 모두 '리스트' 단위로 진행된다는 것을 알 수 있다. 그러므로, 하나의 요소만을 수정할 때에는 '인덱싱'을, 범위의 값을 수정할 때에는 '슬라이싱'을 통해 수정해야 한다.

  • 리스트 요소 삭제하기
  1. [] 사용
a = [1,2,3]
a[1:2] = []
print(a)    #[1,3]

    여기서도 주의할 점은, 리스트의 범위로 연산해야하기 때문에 슬라이싱을 이용해야한다는 것이다. 만약, a[1] = [] 를 했다면, a를 출력했을 때, [1,[],3] 이 출력된다.

  1. del 함수 사용
a = [1,2,3]
del a[1]
print(a)    #[1,3]

b = [4,5,6]
del b[1:3]
print(b)    #[1]

    del 리스트 이름[x]는 리스트의 x+1 번째 요소값을 삭제하고 del 리스트 이름[x:y]는 리스트의 x+1 번째 요소부터 y번째 요소 까지의 값을 삭제한다.



리스트 관련 함수들

  • 리스트의 마지막에 요소 덧붙이기 (append)
a = [1,2,3]
a.append(4)
print(a)    #[1,2,3,4]

    리스트 이름.append(x) 는 리스트의 맨 뒤에 x 요소값을 추가시킨다. x에는 리스트의 요소가 될 수 있는 모든 자료형이 올 수 있다.

  • 리스트 정렬 (sort)
a = [3,6,2,1,4]
a.sort()
print(a)    #[1,2,3,4,6]

    리스트 이름.sort() 는 리스트를 오름차순으로 정렬한다. sort함수를 통해 숫자뿐만아니라 알파벳 요소들도 정렬이 가능하다.

  • 리스트 뒤집기 (reverse)
a = [1,2,3]
a.reverse()
print(a)    #[3,2,1]

    리스트 이름.reverse() 는 리스트를 역순으로 뒤집는다. 다만! 역순으로 '정렬'해주는 것이 아니라 뒤집는 것 뿐이다.

  • 특정요소 위치 반환 (index)
a = [1,2,3]
b = a.index(2)
print(b)    #1

    리스트 이름.index(x) 는 리스트 내의 x요소값의 위치를 반환한다. 여기서, 리스트 내에 x 요소값이 존재하지 않으면 ValueError 가 발생한다.

  • 특정요소를 삽입 (insert)
a = [1,2,3]
a.insert(1,4)
print(a)    #[1,4,2,3]

    리스트 이름.insert(x,y) 는 리스트의 x+1 번째 위치에 y 요소값을 삽입한다.

  • 특정요소를 제거 (remove)
a = [1,2,3,1]
a.remove(1)
print(a)    #[2,3,1]

    리스트 이름.remove(x) 는 리스트 내의 가장 앞에있는 x 요소값을 하나를 제거한다.

  • 리스트의 마지막 요소 끄집어내기 (pop)
a = [1,2,3]
b = a.pop()
print(a)    #[1,2]
print(b)    #3

리스트 이름.pop()는 리스트의 맨 마지막 요소를 반환하고 삭제한다.
리스트 이름.pop(x)는 리스트의 x+1 번째 요소를 반환하고 삭제한다.

  • 리스트 내의 특정요소 개수 세기 (count)
a = [1,2,3]
b = a.count(2)
print(b)    #1

    리스트 이름.count(x) 는 리스트 내의 x 요소값의 개수를 반환한다.

  • 리스트 확장 (extend)
a = [1,2,3]
b = [2,4,6]
a.extend(b)
print(a)    #[1,2,3,2,4,6]

    리스트 이름.extend(x)는 리스트 x를 기존의 리스트에 연결한다. 리스트의 + 더하기 연산과 동일한 기능을 한다.



    이번 글에서는 python의 자료형 중, 리스트 자료형에 대해 공부해봤다. 다음에는 튜플 자료형에 대해 공부 해볼 것이다. 참고로, 저자는 공부자료로 박응용 저자의 점프 투 파이썬 책을 이용하고 있다. 이는 구글에서도 무료로 볼 수 있으니 공부에 참고하길 바란다.