ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Python: 리스트와 문자열을 비교해보자!
    Python 2020. 6. 28. 14:39

    파이썬에서 리스트와 문자열은 굉장히 비슷합니다. 

    리스트가 어떤 자료형들의 나열이라면, 문자열은 문자들의 나열이라고 할 수 있습니다.

    리스트와 문자열이 어떻게 같고 다른지 정리해보겠습니다. 

     

    우선 공통점부터!

     

    <인덱싱 (Indexing)>

    # 알파벳 리스트의 인덱싱
    alphabets_list = ['P', 'A', 'N', 'D', 'A']
    print(alphabets_list[0])  
    print(alphabets_list[1])
    print(alphabets_list[4])
    print(alphabets_list[-1])
    
    
    # 알파벳 문자열의 인덱싱
    alphabets_string = 'PANDA'
    print(alphabets_string[0])
    print(alphabets_string[1])
    print(alphabets_string[4])
    print(alphabets_string[-1])

     

    P
    A
    A
    A
    P
    A
    A
    A

     

     

    <for문>

    # 알파벳 리스트의 반복문
    alphabets_list = ['P', 'A', 'N', 'D', 'A']
    for alphabet in alphabets_list:
        print(alphabet)
    
    
    # 알파벳 문자열의 반복문
    alphabets_string = 'PANDA'
    for alphabet in alphabets_string:
        print(alphabet)

     

    P
    A
    N
    D
    A
    
    P
    A
    N
    D
    A

     

     

    <슬라이싱 (Slicing)>

    # 알파벳 리스트의 슬라이싱
    alphabets_list = ['P', 'A', 'N', 'D', 'A']
    print(alphabets_list[0:3])
    print(alphabets_list[2:])
    print(alphabets_list[:3])
    
    
    # 알파벳 문자열의 슬라이싱
    alphabets_string = 'PANDA'
    print(alphabets_string[0:3])
    print(alphabets_string[2:])
    print(alphabets_string[:3])

     

    ['P', 'A', 'N']
    ['N', 'D', 'A']
    ['P', 'A', 'N']
    PAN
    NDA
    PAN

     

     

    <덧셈 연산>

    # 리스트의 덧셈 연산
    list1 = [1, 2, 3, 4]
    list2 = [5, 6, 7, 8]
    list3 = list1 + list2
    print(list3)
    
    
    # 문자열의 덧셈 연산
    string1 = '1234'
    string2 = '5678'
    string3 = string1 + string2
    print(string3)

     

    [1, 2, 3, 4, 5, 6, 7, 8]
    12345678

     

     

    <len 함수>

    # 리스트의 길이 재기
    print(len(['P', 'A', 'N', 'D', 'A']))
    
    
    # 문자열의 길이 재기
    print(len("Hello, Panda!"))

     

    5
    13

     

     

    지금부턴 리스트와 문자열의 차이점!

    Mutable vs Immutable 

     리스트는 데이터를 바꿀 수 있지만, 문자열은 데이터를 바꿀 수 없습니다.

    리스트와 같이 수정 가능한 자료형을 'mutable'한 자료형이라고 부르고,

    문자열과 같이 수정 불가능한 자료형을 'immutable'한 자료형이라고 부릅니다.

    숫자, 불린, 문자열은 모두 immutable한 자료형입니다.

     

    # 리스트 데이터 바꾸기
    numbers = [1, 2, 3, 4]
    numbers[0] = 5
    print(numbers)

     

    [5, 2, 3, 4]

     

     

    리스트 numbers의 인덱스 05를 새롭게 지정하여 [5, 2, 3, 4]가 출력되었습니다. 이처럼 리스트는 데이터의 수정이 가능한 반면

     

    # 문자열 데이터 바꾸기
    name = "panda"
    name[0] = "P"
    print(name)

     

    Traceback (most recent call last):
      File "prac.py", line 3, in <module>
        name[0] = "P"
    TypeError: 'str' object does not support item assignment

     

    TypeError: 'str' object does not support item assignment는 문자열은 변형이 불가하다는 메시지입니다. 이렇게 문자열은 리스트와 달리 수정이 불가능합니다.

    반응형

    댓글

Designed by Tistory.