-
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의 인덱스 0에 5를 새롭게 지정하여 [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는 문자열은 변형이 불가하다는 메시지입니다. 이렇게 문자열은 리스트와 달리 수정이 불가능합니다.
반응형'Python' 카테고리의 다른 글
Python: 에일리어싱(Aliasing) (1) 2020.06.29 Python: 딕셔너리(Dictionary) 사전 기능! (0) 2020.06.29 Python : while문, for 문, range함수 알아보기! (0) 2020.06.27 Python: 리스트(List)와 sort(), sorted() (1) 2020.06.27 Python: PEP8 스타일가이드 (0) 2020.06.25