[Python] 또다른 자료형 리스트
파이썬을 공부하면서 리스트를 처음 본 장면은 for 루프를 사용할때입니다. for 루프를 다룰때 잠깐 알아봤지만 이번 포스트에서는 리스트에 대해 좀 더 자세히 알아보도록 하겠습니다.
문자열에대해 익숙하다면 리스트도 많이 다르지는 않습니다. 어떻게보면 문자열을 공부하는것보다 리스트를 먼저 다루었어야 하는지도 모릅니다.
1 2 3 4 5 6 | #리스트 설명용 예제 a=[1,2,3,4,5] b=['a','b','c','d','e'] c=list() |
위에 간단한 세줄의 코드를 보시면 a,b,c 라는 세가지 다른 리스트가 있습니다. 나중에는 리스트 안에 리스트 이런식으로 복잡하게 만들 수 있지만 지금은 필요없습니다. 이런식으로 간단한 리스트를 다루는데 익숙해지는게 중요합니다.
리스트는 문자열과 비슷합니다. 문자열이 가지고있는 기능을 거의 그대로 사용이 가능한데요... 그럼 중요한 인덱싱이 필요하겠죠?
a=[1,2,3,4,5] 라는 리스트가 있을때 인덱싱은 문자열과 동일합니다.
a[0] ~ a[4] 까지 순서대로 동일하게 적용됩니다.
하지만 리스트가 문자열과 결정적으로 다른게 몇가지 있습니다. 그중 제일 중요한것은 리스트는 수정이 가능하다는점입니다.
문자열을 다룰때는 그 순간 변경하여 출력하거나 반환하는것이 가능했지만, 실질적으로 문자열자체를 바꾸는것은 불가능했습니다. 하지만 리스트는 다릅니다. 필요하다면 연산과 동시에 변동까지 동시에 가능합니다.
1 2 3 4 5 6 7 | #리스트 설명용 예제 a=[1,2,3,4,5] print(a) #printing list a a[2] = 0 #changing value of a[2] to int 0 print(a) #printing new list a | cs |
위의 코드를 실행했을때 문자열이었다면 변동이 없는 문자열이 출력이 되었겠지만 리스트이기때문에 변화가 된 후 출력이 됩니다.
변화가 가능하다 그말은 삭제도 가능합니다.
빈 큰괄호 [] 를 사용하면 삭제가 가능합니다.
1 2 3 4 5 6 7 | #리스트 설명용 예제 a=[1,2,3,4,5] print(a) #printing list a a[2] = [] #deleting value of a[2] print(a) #printing new list a | cs |
이런 코드를 출력했을때 두번째 a는 3을 제외한 4개의 숫자만을 출력합니다. 마찬가지로 del이라는 함수를 사용해도 됩니다. del a[2] 이 행동은 a[2]=[] 와 같은 의미를 가집니다.
이 삭제 혹은 변동 기능을 슬라이싱과 연계한다면 어떻게 될까요?
1 2 3 4 5 6 7 8 9 10 11 | #리스트 설명용 예제 a=[1,2,3,4,5] b=['a','b','c','d','e'] print(a) #printing list a a[1:3] = [] #deleting value of a[1:3] print(a) #printing new list a print(b) #printing list b b[:3] = ['f','g','h'] #changing b[:3] to new value print(b) |
6행은 간단히 삭제합니다. 7행을 출력해보면 나오지만 a[1],a[2]값이 삭제되어 세가지 숫자만 출력됩니다.
10행은 b[:3] 에 해당하는 값을 뒤에 str f,g,h 세개로 바꾸라는 의미입니다. 이 행동에 주의해야할점은 실수해서 b[3]을 바꾸라고 지시할 경우 리스트 안에 리스트가 들어가게 될 수 있기 때문에 조심해야합니다.
리스트의 기본 연산은 문자열과 같습니다. +, * 로 합치기 밑 반복이 가능합니다.
그 외에 index, reverse, sort, pop, remove 등 여러가지 함수가 있기때문에 용도에 맞게 잘 찾아서 쓰면 좋을듯 싶습니다. 다음 포스트는 튜플형에대해 알아보겠습니다