l = [10, 'ABC', (2, 3)]
for x in l:
print(x)
시퀀스 형
다른 언어들에서의 배열에 해당.
시퀀스형들은 모두 이터러블(멤버를 한 개씩 반환할 수 있는 객체)이다. for문에 for 변수 in 시퀀스
머 이렇게 넣어 쓰면 된다.
리스트 list
가변 시퀀스.
리스트 생성
- 리스트 생성자
list()
,list( 이터러블 )
- 인자 이터러블과 같은 멤버와 그 순서인 리스트를 생성하고 반환.
리스트 디스플레이
[ 표현식, 표현식, 표현식, … ]
- 저것들을 멤버로 하는 리스트 생성
[ 컴프리헨션 ]
- 컴프리헨션
[]
- 빈 리스트
튜플 tuple
불변 시퀀스
튜플 생성
- 튜플 생성자
tuple()
,tuple( 이터러블 )
- 인자 이터러블과 같은 멤버와 그 순서인 튜플을 생성하고 반환.
- 쉼표로 멤버 나열
a, b, c, …
- 마지막 멤버 뒤의 쉼표는 생략 가능하지만 예외로; 멤버가 한 개인 경우엔 뒤에 쉼표가 있어야 튜플이 된다. (쉼표 없이는 그냥 표현식과 구별이 안 되니까)
- 리스트, 집합, 딕셔너리 디스플레이는 대괄호[], 중괄호{}로 만드는 게 맞지만 소괄호
()
는 튜플을 만드는 기호가 아니다.(빈 튜플만 예외) 튜플은 쉼표,
로 만들어진다. 그러나 문법상 모호함을 피하기 위해 괄호가 자주 필요하다. 그리고 출력도 괄호로 싸서 하잖아(a, b, c)
- 예
a = 1, 2, 3 # (1, 2, 3) b = (1, 2, 3) # (1, 2, 3)
()
,(여기공백가능)
- 빈 튜플
범위 range
정수의 등차수열
불변 시퀀스
범위 생성자
인자들은 정수만 된다.
range( stop )
- 0부터 stop 전까지의 정수 배열. 즉 r[i] = i, r[i] < stop
range(5) # 0 1 2 3 4
range( start, stop )
- start부터 stop 전까지의 정수 배열. 즉 r[i] = start + i, r[i] < stop
range(2, 5) # 2 3 4
range( start, stop, step )
- start부터 stop 전까지 step 간격의 정수 배열. 즉 r[i] = start + i*step, step의 부호에 따라 r[i] < 또는 > stop
range(20, 50, 10) # 20 30 40
음의 방향으로 가는 범위를 만들 때는 반드시 step까지 지정해야 한다. step의 기본값이 1이기 때문이다. range(-10) 한다고 자동으로 step이 -1로 설정되지 않는다.
시퀀스의 연산
탐색
- 서브스크립션
s[i]
- s의 i번째 멤버 (0부터 시작)
- 음의 인덱스: -1 ~ -(시퀀스길이) = 마지막에서부터 첫번째 ~ 마지막 원소. 그 외에는 IndexError: 인덱스 범위 에러
s.copy()
- s의 얕은복사본. s[:]와 같다.
x in s
,x not in s
- 비교연산 - 멤버십 검사
- s의 멤버 중에 x와 같은 값인 게 있으면
True
, 아니면False
.not in
은 그 반대. - 문자열의 경우; x가 s의 부분문자열인지 검사한다.
len(s)
- s의 길이 (s의 멤버 개수)
s.index(x)
,s.index(x, i)
,s.index(x, i, j)
- ???
s.count(x)
- x와 같은 값의 멤버 수
확장
공통
s1 + s2
- s1와 s2 이어붙이기. 범위형은 이 연산 불가.
s * n
,n * s
- s n개를 잇기. n은 정수이다. 음수이면 0으로 취급된다.
가변 시퀀스 전용
s.append(x)
- s의 끝에 새 멤버로서 x 추가
s.insert(i, x)
- s의 i째 멤버로서 x 추가. 그 뒤의 멤버들은 한 칸씩 밀린다.
s.extend(t)
- s의 끝에 새 멤버로서 이터레이터 t의 멤버들 추가
변경
가변 시퀀스 전용
s[x] = y
- s의 x번째 멤버를 y로 교체
s[i:k] = t
- s의 i부터 k 전까지의 멤버들을 삭제하고; 그 자리를 이터러블 t의 멤버들로 채운다.
삭제
del s
를 제외하면; 변경과 마찬가지로 가변시퀀스에서만 된다.
del s
- 이름 s 삭제
del s[i]
,del s[i:k]
s.remove(x)
- s의 멤버 중 값이 x와 같은 멤버를 삭제. 여럿이면 첫 번째 것만.
s.pop(i)
- i번째 멤버를 삭제하며 반환. i가 없으면 맨끝것.
s.clear
- s의 모든 멤버 제거.
del s[:]
와 같다.
728x90