[Programming Language]/[Python]

[Python] :: 리스트 - 연결(+), 반복(*), len( ), append( ), insert( ), extend([ ]), del, pop( ), remove( ), clear( ), in/not in 연산자, for 반복문

Semincolon 2023. 4. 2. 19:27

◎ 리스트(list)

  C언어에서의 배열이 존재하는 것처럼, 파이썬에서는 리스트가 존재한다. C언어와는 같은 자료형의 값만 저장할 수 있었으나 파이썬에서는 여러 자료형으로 리스트를 구성할 수 있다. 파이썬이 사용성이 좋다고 말하는 이유를 이런 부분에서 찾아볼 수 있는 것 같다. 

# 숫자 자료형으로만 구성
list_1 = [1, 2, 3, 4, 5]

# 문자열만으로 구성
list_2 = ["H", "E", "L", "L", "O"]

# 여러 자료형으로 구성
list_3 = [1, 2, 3, "Hi", "Hello", True, False]

  리스트에 들어가는 값들을 요소(element)라 하고 리스트에 각 요소에 접근하기 위해서는 C언어와 동일하게 인덱스(Index)를 사용할 수 있다. 추가로 파이썬에서는 음수 인덱스도 사용이 가능하다. 아래의 리스트에 대한 인덱스를 표로 보이도록 하겠다.

list = ["H", "E", "L", "L", "O"]
"H" "E" "L" "L" "O"
[0] [1] [2] [3] [4]
[-5] [-4] [-3] [-2] [-1]

  파이썬은 인덱스가 0부터 시작하는 언어이다. 위 사진은 list[0]을 통해 0번째 인덱스의 값인 "H"를 출력하였고 list[1:3]을 통해 1, 2번 인덱스의 값인 "E", "L"을 출력하였다([1:3]은 '슬라이싱'으로, 맨 마지막 숫자인 3을 제외한 인덱스만을 지정한다). 또한 0번 인덱스의 값을 숫자 123으로 바꾸기도 하였다.

 

  리스트도 엄연한 자료형이므로 리스트 안에 리스트를 넣는 이중 구조도 가능하다. 이는 C언어의 2차원 배열과 유사한 개념이고 이중 구조를 사용하게 되면 인덱스 역시 이중으로 사용할 수 있게 된다. 문자열 값을 가지는 경우에도 마찬가지로 이중 인덱스의 사용이 가능하다.

  리스트는 요소에 접근하기 위해 인덱스를 사용하므로 만약 요소가 존재하지 않는 위치의 인덱스 번호를 사용하면 IndexError 예외가 발생하게 되므로 사용에 주의해야 한다.

 


◎ 리스트 연산자: 연결(+), 반복(*), len(), in/not in

  문자열에도 연산자를 적용할 수 있는 것처럼 리스트에도 연산자를 적용할 수 있다. 사용 가능한 연산자는 +, *이 있고 +는 리스트들을 연결짓고 *는 리스트를 특정 수만큼 반복한다. len( ) 함수는 리스트의 요소 갯수를 출력한다.

  in 연산자는 값이 리스트 안에 있다면 True를, 없다면 False를 출력하고 not in 연산자는 in 연산자와 반대로 있다면 False, 없다면 True를 출력한다.


◎ 리스트 함수: 추가(append, insert, extend), 제거(del, pop, remove, clear)

  리스트에 요소 추가하기: append, insert, extend

  리스트에 요소를 추가할 때는 append( ) 함수와 insert( ) 함수, extend( ) 함수를 사용하는 3 가지의 방법이 존재한다. append( ) 함수는 리스트에 맨 마지막에 요소를 추가하고 insert( ) 함수는 지정한 인덱스에 요소를 추가한다. insert( ) 함수를 사용하여 요소를 추가하게 되면 요소가 추가되는 위치를 기준으로 뒤의 요소들은 뒤로 1칸씩 밀리게 된다. extend( ) 함수는 append( ) 함수와 동일하게 맨 마지막에 요소가 추가된다.

리스트에서 요소 제거하기: del, pop, remove, clear

  del 키워드pop( ) 함수를 사용하면 특정 인덱스에 있는 요소를 제거할 수 있는데, pop( ) 함수는 제거된 요소를 반환한다는 특징이 있다. 또한 pop( ) 함수에 매개변수를 주지 않으면 맨 마지막 요소가 제거된다.

  remove( ) 함수를 사용하면 인덱스가 아닌 값으로의 제거가 이뤄진다. del 키워드와 pop( ) 함수는 인덱스로 제거를 하고 remove( ) 함수는 으로 제거를 한다는 차이점이 있다.

  clear( ) 함수는 리스트 내부의 요소를 모두 제거한다.


◎ 리스트와 for 반복문

  C언어에서 배열이 반복문과 주로 사용이 되는 것처럼, 파이썬에서도 리스트가 반복문과 주로 사용된다. for 반복문의 기본 형태는 아래와 같다.

for 반복자 in 반복할 수 있는 것:
	코드

    list의 맨 처음 요소 값이 반복 변수 i에 저장되고 코드의 실행이 끝나면 그 다음 요소의 값이 저장되어 또 코드가 실행되는 형태이다.