-
[코딩도장] day5. 시퀀스 자료형(2) - len(), 인덱스, delIT/파이썬 2020. 8. 8. 00:17
■ 들어가기
- 파이썬 코딩 도장 (남재윤/길벗). 을 공부하며 정리하는 블로그
▶ Unit11. 시퀀스 자료형 활용하기
- 11.2 시퀀스 객체의 요소 개수 구하기
- 11.3 인덱스 사용하기
1. 시퀀스 요소 길이(갯수) 구하기
- 사용법: len(시퀀스객체)
>>> a = list(range(0,10,2))
>>> print(a)
[0, 2, 4, 6, 8]
>>> len(a)
5
>>> b = tuple(range(0,100,10))
>>> b
(0, 10, 20, 30, 40, 50, 60, 70, 80, 90)
>>> len(b)
102. range의 숫자 생성 갯수 구하기
>>> list(range(0,10,2))
[0, 2, 4, 6, 8]
>>> len(range(0,10,2))
53. 문자열의 길이 구하기
- 문자열의 길이는 공백포함
- 영문뿐만 아니라 한글 문자열 길이도 len()으로 가능
>>> hello = "Hello, World!"
>>> hello
'Hello, World!'
>>> len(hello)
13
>>> hello = "안녕하세요"
>>> len(hello)
5- UTF-8 문자열의 바이트 수 구하기
>>> print(hello)
안녕하세요
>>> len(hello.encode('utf-8'))
15
4. 인덱스 사용하기
- 시퀀스 객체의 각 요소에는 순서가 정해져 있으며, 이 순서를 "인덱스"라고 부름
- 시퀀스 객체에 [](대괄호)를 붙이고 [] 안에 각 요소의 인덱스를 지정하면 해당 요소에 접근 가능
- 사용법: 시퀀스객체[인덱스]
주의) 시퀀스 객체의 인덱스는 항상 0부터 시작
>>> a = [38,21,53,62,19]
>>> a[0] # 리스트의 첫 번째(인덱스 0) 요소 출력
38
>>> a[2] # 리스트의 세 번째(인덱스 2) 요소 출력
53
>>> a[4] # 리스트의 다섯 번째(인덱스 4) 요소 출력
19- 튜플, range, 문자열도 []에 인덱스를 지정하면 해당 요소를 가져올 수 있음
>>> b = (38,21,53,62,19)
>>> b[0]
38
>>> b[0] # 튜플의 첫 번째(인덱스 0) 요소 출력
38
>>> r = range(0,10,2)
>>> r[2] # range의 세 번째(인덱스 2) 요소 출력
4
>>> hello = "Hello, World!"
>>> hello[7] # 문자열의 여덟 번째(인덱스 7) 요소 출력
'W'- 시퀀스 객체에 인덱스 지정하지 않는 경우, 해당 객체 전체를 의미함 (c언어에서 배열의 주소를 의미하는 것과 동일)
>>> a = [38,21,53,62,19]
>>> a # 시퀀스 객체에 인덱스 지정하지 않으면 시퀀스 객체 전체를 뜻함
[38, 21, 53, 62, 19]5. 음수 인덱스 지정하기
- 인덱스를 음수로 지정하면 뒤에서부터 요소에 접근
- 리스트, 튜플, range, 문자열 모두 동일!
예) -1 : 뒤에서 첫 번째 요소, -5, 뒤에서 다섯 번째 요소
>>> a = [38,21,53,62,19]
>>> a[-1] # 리스트의 뒤에서 첫 번째(인덱스 -1) 요소 출력
19
>>> a[-5] # 리스트의 뒤에서 다섯 번째(인덱스 -5) 요소 출력
386. 인덱스 범위를 벗어난다면?
- IndexError 발생!!
- 리스트, 튜플, range, 문자열 모두 동일!
>>> a = [38,21,53,62,19]
>>> a[10]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IndexError: list index out of range7. 마지막 요소에 접근하기
- 마지막요소: 리스트의 길이-1
>>> a = [38,21,53,62,19]
>>> len(a) # 리스트 a의 길이(갯수)
5
>>> a[len(a)-1] # 리스트 인덱스는 0부터 시작해서 갯수-1까지 인덱스를 가짐
198. 요소에 값 할당하기
- 사용법: 시퀀스객체[인덱스] = 값
- 단, 튜플은 요소 변경 불가하므로 위와 같이 사용 시 에러 발생함.
- range, 문자열도 요소 변경 불가!
>>> a = [0,0,0,0,0] # 0이 5개 들어있는 리스트
>>> a[0] = 38
>>> a[1] = 21
>>> a[2] = 53
>>> a[3] = 62
>>> a[4] = 19
>>> a
[38, 21, 53, 62, 19]
>>> a[0]
389. 요소 삭제하기
- 사용법: del 시퀀스객체[인덱스]
- 단, 튜플은 요소 변경 불가하므로 위와 같이 사용 시 에러 발생함.
- range, 문자열도 요소 변경 불가!
>>> a = [38,21,53,62,19]
>>> del a[2] # 리스트의 세 번째(인덱스 2) 요소 삭제
>>> a
[38, 21, 62, 19]● 요약 ●
1. 요소 변경은 "리스트"만 가능
2. 시퀀스 자료형 중 튜플, range, 문자열은 read only임.
'IT > 파이썬' 카테고리의 다른 글
[코딩도장] day7. 딕셔너리 (0) 2020.08.12 [코딩도장] day6. 시퀀스 자료형(3) - 슬라이스 (0) 2020.08.09 [코딩도장] day5. 파이썬 시퀀스 자료형(1) - in, +, * 연산자 (0) 2020.08.07 [코딩도장] day4. 리스트 (0) 2020.08.02 [코딩도장] day3. 파이썬 출력, 비교/논리 연산자, 문자열 (0) 2020.08.02