Sequence Types (순서열 타입)
1) 변경가능한 순서열 타입 (Mutable sequence Types)
- list(array-배열), bytearray
- 순서열 내에 원소를 변경할 수 있다.
- 재지정이 가능하다.
2) 변경 불가능한 순서열 타입 ( Immutable Sequence Types)
- tuple, str, set, dict
- 순서열 내에 원소의 내용을 변경할 수 없다.
- 재지정이 불가능하다.
공통 연산자
- list와 tuple 둘 다 사용하는 연산자
- x : 집합원소 s : string(list,tuple)
1) x in s : string(list,tuple) 안에 있는 원소 x가 있으면 TRUE, 없으면 FALSE
EX) sample_1안에는 10이 있기 때문에 TRUE, 15는 list안에 없기 때문에 FALSE
2) s + t : string(list)에 들어갈 원소를 추가하는 것이다. tuple은 원소의 내용을 바꿀 수 없기에 이 연산자는 쓸 수 없다.
EX) sample_1에 60을 추가했습니다. 하지만 다시 sample_1을 확인해보면 기존의 것이 존재한다.
그 이유는 돌려주는 것이기때문에 바뀌지 않는 것이다.
3) s * n or n * s : string(list)에 반복할 횟수 n을 추가하는 것이다.
EX) sample_1에 원소를 2번 반복했습니다. 2번과 마찬가지로 돌려주는 것이기떄문에 기존의 것이 존재합니다.
4) s[ i ] : i는 기수표현. i는 0부터 시작합니다. 원소의 순서에 맞는 값을 표현합니다.
EX) sample_1을 기수 순서대로 표현해봤습니다.
5) s[ i : j ] : (슬라이스) i는 시작위치, j는 끝나는 위치. 마지막원소는 포함되지 않는다. (닫혀있다.)
EX) sample[0:2] = 첫번째 원소부터 두번째 원소까지 표현하는 것이다.
EX) sample[0:5] = 마지막원소까지 표현하려면 4가 아니라 5로 표현해야 한다. (닫혀있기 때문이다.)
- 마지막 숫자는 개수로 표현하는 것이 편하다.
EX) sample[1:] = 두번째 원소부터 끝까지 표현하라는 의미이다.
sample[:4] = 처음부터 네번째 원소까지 표현하라는 의미이다.
EX) lists라는 변수를 sample에 넣어주었습니다. 그리고 나서 lists의 첫번째 값을 변경하였더니 sample도 같이 바뀌게 되었습니다.
그 이유는 한 list를 두개의 변수가 갖고 있기때문에 한 변수가 변경을 하면 다른 변수도 같이 변경되는 것입니다. 한마디로 같은 list 입니다.
EX) 똑같이 list라는 변수를 sample에 넣어주었습니다.
sample[:]는 처음부터 끝까지의 값을 넣어주라는 의미이기때문에 sample의 값을 list가 갖고 오게됩니다.
그리고나서 lists의 첫번째 값을 변경하고나서 sample에서도 확인해보면 바뀌지 않은 것을 볼 수 있습니다.
한마디로 새로운 타입을 만들어주기때문에 전혀 다른 list가 되는 것입니다.
6) min(s) : list나 tuple 안에 있는 값 중 최소값을 표현한다.
7) max(s) : list나 tuple 안에 있는 값 중 최대값을 표현한다.
8) len(s) : list나 tuple의 길이를 표현한다.
EX) sample의 최솟값, 최댓값, 길이를 표현했습니다.
9) s.index(x) : x원소의 string 값의 순서를 나타내준다. 범위를 지정안했을 경우에는 처음부터 끝까지. 지정했을 경우 마지막원소는 닫혀있다.
EX) sample의 원소 30의 위치는 3번째임을 확인할 수 있다. 20의 원소는 첫번째 부터 세번째까지의 범위내에서는 첫번째임을 확인할 수 있다.
10) s.count(x) : string에 있는 x원소의 갯수를 세어준다.
EX) 30의 원소는 2개임을 확인할 수 있다.
list
1) s.append( x ) : list 안에 x의 원소를 맨 뒤에 추가하는 것이다. 형변환이 알아서된다.
EX) sample 안에 60이라는 원소를 추가했습니다.
2) s.extend( t ) or s += t : list에 x의 원소를 추가하는 것이다. 타입을 맞춰 넣어줘야 한다.
EX) sample 안에 60 과 70을 추가했습니다.
3) s.insert( i, x ) : i(기수)부분에 x원소를 삽입하는 것이다.
EX) 10과 20 사이에 15를 삽입했습니다.
4) s.clear( ) : 내용을 삭제하는 것이다. = del s[ : ]
EX) sample의 list를 삭제했습니다.
5) s.copy( ) : 복사하는 것이다. = s[ : ]
EX) sample의 리스트를 변수 lists에 복사해서 출력했습니다.
6) s.pop( i ) : list안에 있는 기수 i번째의 원소를 꺼내와서 list안에는 그 원소가 삭제되는 것이다.
EX) sample안에 있는 30을 꺼내 sample안에는 원소가 삭제되는 것을 볼 수 있습니다.
7) s.remove( x ) : list안에 있는 원소를 삭제하는 것이다.
EX) sample 안에 있는 20을 삭제했습니다.