티스토리 뷰

Backend-dev/python

파이썬의 자료형 list

RunningWater 2018. 3. 27. 20:20

리스트 자료형

여러 가지 값을 하나의 변수에 넣을 수 있을까요? 리스트를 활용하면 여러가지 값을 묶어서 변수에 넣을 수 있습니다.

list1 = ["name", "age", 11]
list2 = [2, 5, 7 ,9]


같은 자료형이 아니라도 상관없습니다. 대괄호 안에 ,(쉼표)로 구분해서 값을 넣으면 됩니다.

리스트의 인덱스

리스트 안에 있는 값에는 어떻게 접근할 수 있을까요? 리스트도 인덱스를 가지고 있습니다.(인덱스는 0부터 시작한다는 것을 잊지마세요.) 리스트[인덱스]를 통해서 인덱스에 맞는 값에 접근할 수 있습니다.

blog = ["lemon", "candy", [1, 2, 3]]
blog[0] #"lemon"
blog[2][0] # 1 


리스트는 중첩될 수도 있습니다. 리스트 안에 리스트가 있더라도 인덱스만 있으면 쉽게 접근할 수 있습니다. 위의 소스코드에는 [1, 2, 3]이라는 리스트가 다른 리스트 안에 들어가 있습니다. 일단 blog[2]를 통해 해당 리스트에 접근하고 연속해서 인덱스 값을 적어서 안에 있는 값에 접근할 수 있습니다. 문자열에서 배운 슬라이싱도 사용할 수 있습니다. 한번 연습해보세요.

리스트의 더하기와 곱하기 

리스트를 더하거나 곱할 수 있습니다. 리스트끼리 더하면 리스트를 결합해줍니다. 리스트를 곱하면 곱한 수 만큼 값을 반복해서 반환해줍니다.

num1 = [1, 2, 3]
num2 = [4, 5, 6]
num3 = num1 + num2 # num3은 [1, 2, 3, 4, 5, 6]
num1 * 2 # [1, 2, 3, 1, 2, 3]


소스코드를 보시면 num1과 num2를 더한 리스트를 num3에 할당했습니다. 그래서 두 리스트를 결합한 [1, 2, 3, 4, 5, 6]이라는 배열이 num3에 들어갑니다. 

리스트에 값 넣기

리스트에 값을 넣을 수 있는 메소드는 무엇이 있을까요? append()와 insert()를 이용하면 리스트에 값을 추가할 수 있습니다.

num1 = [1, 2, 3]
num1.append(4) # [1, 2, 3, 4]
num1.append(5) # [1, 2, 3, 4, 5]


num1이라는 리스트에 append를 통해서 4와 5를 추가했습니다. append('값')를 이용하면 리스트의 끝에 값이 추가됩니다. insert(인덱스, '값')는 값을 어디에 넣을지 인덱스를 통해서 정할 수 있습니다.


num1 = [1, 2, 3, 4, 5]
num1.insert(1, 10) # [1, 10, 2, 3, 4, 5]


2번째 자리에 10이라는 값을 넣었습니다. 다른 값들은 하나씩 밀려나게 됩니다.

리스트에서 값 제거하기

값을 넣었다면 이제 값을 제거해볼까요? 리스트의 값을 제거하는 메소드는 pop()이 있습니다.


num1 = [1, 2, 3, 4, 5]
num1.pop() # 5를 반환하고 리스트는 [1, 2, 3, 4]가 됨
num1.pop(0) #1을 반환하고 리스트는 [2, 3, 4]가 됨


pop()메소드 안에 아무 값도 넣지 않으면 리스트의 맨 마지막 값이 반환되면서 빠집니다. 그리고 괄호 안에 인덱스를 넣을 수 있는데 인덱스 값을 넣게되면 해당 인덱스에 해당되는 값이 반환되면서 빠지게 됩니다.

리스트를 삭제하는 방법

del을 이용하면 리스트를 삭제할 수 있습니다.

del num1 # num1이라는 리스트는 삭제되었습니다.

num2 = [1, 2, 3]
del num2[1] #[1, 3]


del 뒤에 리스트명을 적으면 해당 리스트가 삭제됩니다. 리스트[인덱스]를 적으면 해당 리스트의 인덱스의 값만 삭제됩니다.



오늘은 많이 사용하는 자료형인 리스트에 대해서 알아보았습니다. 다음 포스팅에서는 튜플 자료형에 대해서 알아보도록 하겠습니다.



공감은 제작자에게 큰 힘이 됩니다.


댓글