cs 1. 파이썬의 컨테이너 (리스트, list, 리스트 관련 함수 메서드, range, 슬라이싱, 리스트 예시, 리스트 응용) :: 맥스웰과 데자와

0. 파이썬의 컨테이너

 

  • 리스트(List) : 대괄호( '[ ]' )를 사용해서 항목을 함께 모으는 방법의 하나입니다. 배열과 비슷하게 사용되나, 배열은 아니고 객체로서 함수가 존재, 인덱스 값을 이용한 접근이 가능합니다. 어떤 것들을 묶음 또는 모음의 형태로 한꺼번에 저장합니다.
  • 딕셔너리(Dictionary) -> 두 개의 항목 키(key)와 값(value)을 서로 연관시키는 방법의 하나입니다. 중괄호( '{ }' ) 사용하며 딕셔너리는 키-값 쌍의 모음입니다. 정보를 가장 빠르게 찾을 수 있지만 메모리를 많이 차지합니다.
  • 집합(Set) : 중괄호( '{ }' )를 이용해서 항목을 함께 모으는 방법의 하나입니다. 리스트와 비슷하지만 순서구분이 없고, 중복을 허락하지 않습니다. 이는 실제 수학에서 쓰이는 집합과 같은 성질인데, 실제로 집합에 관련된 것을 유용하게 처리하기 위해 나중에 만들어진 컨테이너입니다.
  • 튜플(Tuple) : 불변(변경할 수 없는) 리스트입니다. 리스트에 사용하는 대괄호 대신 소괄호( '( )' ) 사용합니다. 불변이기 때문에 항목을 정렬하거나 추가, 삭제하는 등의 작업을 할 수 없습니다. 특정 항목을 가지고 튜플을 만들고 나면 그대로 유지됩니다.

 

*키(key)란?

정보를 찾는 데 사용할 항목을 의미합니다. 이때, 키 값은 반드시 고유해야 합니다.

*값(value)란?

찾고자 하는 항목을 의미합니다.

 

 

 

1. 리스트 선언

 

리스트이름 = [ 항목 ] 형태로 리스트를 선언할 수 있습니다. 

아래 my_list의 항목에는 [ 1, 3, '딸기', '초코' ]가 있는 것을 볼 수 있는데요. 이는 my_list라는 4개의 방 안에 각각의 항목들이 들어있다고 생각하면 편리합니다.

 

my_list : 1 3 '딸기' '초코'

 

따라서 리스트 역시 문자열처럼 인덱스로 인식하기 때문에, 다음과 같은 결과를 얻을 수 있을 것입니다.

 

>>> my_list [0]

1

>>> my_list [1]

3

>>> my_list [2]

'딸기'

>>> my_list [3]

'초코'

>>> my_list [-1]

'초코'

>>> my_list [-2]

'딸기'

>>> my_list [-3]

3

>>> my_list [-4]

1

 

 

 

2. 리스트 관련 함수

 

리스트는 여러 리스트 관련 함수를 사용해서 리스트를 변경하거나 정보를 얻을 수 있습니다.

관련 함수는 아래와 같습니다.

 

  • list_name.index(x) : x값의 인덱스 번호를 return 해줍니다.
  • list_name.extend(x, y, ...) : 리스트를 확장해줍니다. 즉 리스트 끝에 여러 개의 항목을 추가할 수 있습니다.
  • list_name.append(x) : 리스트 끝에 항목x를 하나 추가해줍니다.
  • list_name.insert(x, y) : 인덱스 x의 위치에 자료형 y를 삽입합니다.
  • list_name.sort( ) : 문자열은 알파벳순으로, 숫자는 크기대로 자동 정렬해 줍니다.
  • list_name.remove(x) : x를 삭제하고 버립니다. 해당 항목이 어디에 있는지 몰라도 된다는 장점이 있습니다.
  • del list_name[x] : 인덱스 x의 항목을 하나 삭제합니다.
  • list_name.pop( ) : 리스트의 마지막 항목을 가져와 돌려줍니다. 즉, 해당 항목에 이름을 할당할 수 있다는 뜻입니다.
  • list_name.pop(x) : pop( )에 인덱스를 지정할 수도 있습니다. 

 

 

리스트 관련 함수1

 

 리스트 관련 함수2

 

 

 

3. range

 

리스트는 또한 함수 range 로도 만들 수도 있습니다. range는 정수들로 구성된 리스트를 만드는 함수로, range(x, y)는 정수 x 부터 y-1 까지로 구성된 리스트를 만듭니다.

 

리스트 관련 함수3

 

 

 

4. 리스트 슬라이싱

 

위에서 설명한 것처럼 리스트 역시 문자열처럼 인덱스 값을 이용한 접근이 가능합니다. 즉 슬라이싱이 가능하다는 의미인데요. 슬라이싱은 리스트의 인덱스 번호를 이용해서 일부분 또는 전체를 추출하는 것을 의미합니다. 따라서 리스트 부분 부분을 사용해야 할 때는 슬라이싱을 이용해 편리하게 접근할 수 있습니다.

 

리스트 슬라이싱

 

 

 

5. 리스트 응용

 

리스트는 여러 가지로 응용 가능한데요. 특히 반복문과 함께 사용될 때가 많습니다. 반복문을 이용하면 리스트의 항목을 한 줄에 하나씩 출력 가능합니다. 다음은 for 반복문을 이용한 리스트의 예시입니다.

 

-> 간단한 for 반복문으로 list의 항목이 한 줄에 하나씩 출력된 것을 볼 수 있습니다.

 

 

또한 for 반복문으로 list 항목의 값을 변경할 수도 있습니다.

 

 for 반복문으로 list 항목의 값을 변경하기

 

 

마지막으로, 특별히 list와 for 반복문에서 유용하게 쓰이는 함수로 enumerate 함수가 있습니다.

enumerate의 뜻은 열거하다로, enumerate 함수는 열거형(리스트, 튜플, 집합, 문자열 등) 객체를 번호와 함께 반환하는 역할을 합니다. 리스트에서 enumerate 함수는 리스트 항목의 각 인덱스에 접근할 때 사용하는 함수입니다. enumerate 함수와 sprintf 방식을 이용하면 리스트에 있는 항목에 번호를 지정하여 출력하므로 리스트의 항목을 알기 쉽게 나타낼 수 있습니다.

enumerate 함수는 [ enmuerae( list_name ) ] 으로 사용합니다.

for 문과 함께 사용될 때는 나타내야 할 변수가 두 개(인덱스번호, 리스트항목) 이므로  

for x, y  in enumerate 로 입력해야 합니다.

 

* 참고

 

서식 지정 : %

-> % 는 서식을 지정할 수 있습니다. 위 예시를 #sprintf 방식이라고 합니다.

여기서 s : string, d : digit을 의미합니다.

 

 

enumerate 예시1

-> 각 항목의 인덱스 값이 항목이랑 같이 출력된 것을 볼 수 있습니다.

 

 

enumerate 예시2

-> % 서식을 살짝 바꿔서 우리가 알기 쉽게 1번부터 항목을 나타내거나, 앞에 str을 추가할 수도 있습니다.

+ Recent posts