ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [코딩도장] day5. 시퀀스 자료형(2) - len(), 인덱스, del
    IT/파이썬 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)
    10

     

    2. range의 숫자 생성 갯수 구하기

    >>> list(range(0,10,2))
    [0, 2, 4, 6, 8]
    >>> len(range(0,10,2))
    5

     

    3. 문자열의 길이 구하기

    - 문자열의 길이는 공백포함

    - 영문뿐만 아니라 한글 문자열 길이도 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) 요소 출력
    38

     

    6. 인덱스 범위를 벗어난다면?

    - 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 range

     

    7. 마지막 요소에 접근하기

    - 마지막요소: 리스트의 길이-1

    >>> a = [38,21,53,62,19]
    >>> len(a)      # 리스트 a의 길이(갯수)
    5
    >>> a[len(a)-1] # 리스트 인덱스는 0부터 시작해서 갯수-1까지 인덱스를 가짐
    19

     

    8. 요소에 값 할당하기

    - 사용법: 시퀀스객체[인덱스] = 값

    - 단, 튜플은 요소 변경 불가하므로 위와 같이 사용 시 에러 발생함.

    - 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]
    38

     

    9. 요소 삭제하기

    - 사용법: del 시퀀스객체[인덱스]

    - 단, 튜플은 요소 변경 불가하므로 위와 같이 사용 시 에러 발생함.

    - range, 문자열도 요소 변경 불가!

    >>> a = [38,21,53,62,19]
    >>> del a[2]    # 리스트의 세 번째(인덱스 2) 요소 삭제
    >>> a
    [38, 21, 62, 19]

     

     

    ● 요약 

    1. 요소 변경은 "리스트"만 가능

    2. 시퀀스 자료형 중 튜플, range, 문자열은 read only임.

    댓글

Designed by Tistory.