Python: 시퀀스 자료형

dev-swd·2020년 11월 2일
0

python

목록 보기
8/23
post-thumbnail

시퀀스 자료형

값이 연속적(sequence)으로 이어져있는 자료형.
파이썬에서는 list, tuple, range, str, bytes, bytearray 이 있다.


시퀀스 자료형 공통 기능

특정 값 있는지 확인

  • 값 in 시퀀스객체
a = [0, 10, 20.. ]
2 in a
>> False
  • 값 not in 시퀀스객체
a = [0, 10, 20.. ]
2 not in a
>> True

시퀀스 객체 연결

  • 시퀀스객체1 + 시퀀스객체2
range(0, 10) + range(10, 20)
list(range(0, 10)) + list(range(10, 20))
tuple(range(0, 10)) + tuple(range(10, 20))

시퀀스 객체 반복

range(0, 5, 2) * 3
list(range(0, 5, 2)) * 3
'Hello, ' * 3

시퀀스 객체 요소의 길이

a = [0, 10, 20, 30, 40, 50, 60, 70, 80, 90]
len(a)

버전별 len() 의 결과 값

  • 파이썬 2.7 에서 len 은 실제 바이트 수를 구한다.
  • 파이썬 3에서 len 은 시퀀스 객체의 길이를 반환한다.
  • 파이썬 3에서 바이트 수를 구하기 위해서는 len(객체.encode('utf-8')) 를 이용한다.
hello = '안녕하세요'
len(hello.encode('utf-8'))  # 15
  • 한글, 한자, 일본어 등은 UTF-8 인코딩으로 저장한다. 한글 1글자는 3바이트이다.
test1 = 'ㅇ'
test2 = 'a'
test3 = '1'
test4 = 'あ'

print(len(test1.encode('utf-8')))  # 3
print(len(test2.encode('utf-8')))  # 1
print(len(test3.encode('utf-8')))  # 1
print(len(test4.encode('utf-8')))  # 3

시퀀스 객체에 인덱스를 지정하지 않았을 때, __getitem__ 메서드

  • 시퀀스 객체에 인덱스를 지정하지 않으면, 전체 요소를 가져온다.
  • 시퀀스객체[index] 를 사용하여, 해당 인덱스의 값에 접근할 수 있다.
  • __getitem__ 를 사용하여 인덱스를 지정하면, 해당 인덱스의 값을 가져온다.
  • 음수 인덱스를 지정하면 뒤에서 가져온다.
  • 따라서, 인덱스 -1 를 지정하면, 가장 마지막 요소에 접근할 수 있다.
  • 인덱스를 벗어나면 index out of range 에러를 반환한다.
  • 시퀀스 객체는 모두 slice 를 사용하여, 값에 접근할 수 있다.
profile
개발을 취미로 할 수 있는 그 때 까지

0개의 댓글