호이호우
Beatlefeed
호이호우
전체 방문자
오늘
어제
  • 분류 전체보기 (75)
    • 세상은 지금... (4)
    • 인공지능 (24)
    • 코딩배우기 (21)
      • HTML, CSS (7)
    • 심리학 (25)

블로그 메뉴

  • 홈
  • 태그
  • 미디어로그
  • 위치로그
  • 방명록

공지사항

인기 글

태그

  • U-Net Generator
  • Diana Baumrind
  • keras
  • mnist
  • Optimizer
  • DCGAN
  • CIFAR-10
  • Python
  • Gan
  • cGAN
  • 심리치료
  • 행동심리
  • Loss Function
  • BatchNormalization
  • 인공지능
  • 발달심리학
  • generator
  • Decoder
  • Encoder
  • 파이썬
  • Deep learning
  • LeakyReLU
  • ADHD
  • U-Net
  • 권위주의적육아
  • discriminator
  • tensorflow
  • Momentum
  • pix2pix
  • Sketch2Pokemon

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
호이호우

Beatlefeed

파이썬 리스트(list)와 문자열 정리|Python
코딩배우기

파이썬 리스트(list)와 문자열 정리|Python

2021. 1. 21. 23:17
반응형

파이썬에서 리스트와 문자열은 굉장히 비슷하다.
리스트가 어떤 자료형들의 나열이라면, 문자열은 문자들의 나열이라고 할 수 있다.

리스트와 문자열이 어떻게 같고 다른지 알아보자.

인덱싱(Indexing)

두 자료형은 공통적으로 인덱싱(indexing)이 가능하다.

  • 알파벳 리스트의 인덱싱
alphabets_list = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J']

print(alphabets_list[0])
>>> A

print(alphabets_list[1])
>>> B

print(alphabets_list[4])
>>> E

print(alphabets_list[-1])
>>> J
  • 알파벳 문자열의 인덱싱
alphabets_string = 'ABCDEFGJ'

print(alphabets_string[0])
>>> A

print(alphabets_string[1])
>>> B

print(alphabets_string[4])
>>> E

print(alphabets_string[-1])
>>> J

for 반복문

두 자료형은 공통적으로 인덱싱이 가능하다. 따라서 for 반복문에도 활용할 수 있다.

  • 알파벳 리스트의 반복문(열로 각각 출력)
alphabets_list = ['C', 'O', 'D', 'E', 'I', 'T']

for alphabets in alphabets_list:
    print(alphabets)

>>>
C
O
D
E
I
T
  • 알파벳 문자열의 반복문(열로 각각 출력)
alphabets_string = 'CODEIT'

for alphabets in alphabets_string:
    print(alphabets)

>>>
C
O
D
E
I
T

슬라이싱(Slicing)

두 자료형은 공통적으로 슬라이싱이 가능하다.

  • 알파벳 리스트의 슬라이싱
alphabets_list = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J']

print(alphabets_list[0:5])
>>> ['A', 'B', 'C', 'D', 'E']

print(alphabets_list[4:])
>>> ['E', 'F', 'G', 'H', 'I', 'J']

print(alphabets_list[:4])
>>> ['A', 'B', 'C', 'D']
  • 알파벳 문자열의 슬라이싱
alphabets_string = 'ABCDEFGJ'

print(alphabets_string[0:5])
>>> ABCDE

print(alphabets_string[4:])
>>> EFGJ

print(alphabets_string[:4])
>>> ABCD

덧셈 연산

두 자료형에서 모두 덧셈은 '연결'하는 연산이다.

  • 리스트 덧셈 연산
list1 = [1, 2, 3, 4]
list2 = [5, 6, 7, 8]
list3 = list1 + list2

print(list3)
>>> [1, 2, 3, 4, 5, 6, 7, 8]
  • 문자열 덧셈 연산
list1 = '1234'
list2 = '5678'
list3 = list1 + list2

print(list3)
>>> 12345678

len 함수

두 자료형은 모두 길이를 재는 len 함수를 사용할 수 있다.

  • 리스트의 길이 재기
print(len(['H', 'E', 'L', 'L', 'O']))
>>> 5
  • 문자열의 길이 재기(공백 포함)
print(len('Hello, world!'))
>>> 13

Mutable(수정 가능한)과 Immutable(수정 불가능한)

리스트와 문자열의 가장 큰 차이점이 있다.

리스트는 데이터를 바꿀 수 있지만, 문자열은 데이터를 바꿀 수 없다는 점이다.
리스트와 같이 수정 가능한 자료형을 'mutable'한 자료형이라 부르고, 문자열과 같이 수정 불가능한 자료형을 'immutable'한 자료형이라 한다.

숫자, 불린(boolean), 문자열은 모두 'immutable'한 자료형이다.

  • 리스트 데이터 바꾸기
    [1, 3, 5, 7, 9]의 리스트가 있다.
    리스트 numbers의 인덱스 0에 5를 새롭게 지정하게 될 경우, [5, 3, 5, 7, 9]가 출력이 될 것이다.
    이처럼 리스트는 데이터의 생성, 삭제, 수정이 가능하다.
예제 1) 수정

numbers = [1, 2, 3, 4]
numbers[0] = 5

print(numbers)
>>> [5, 2, 3, 4]
예제 2) 삭제

numbers = [1, 2, 3, 4]
numbers.remove(2)

print(numbers)
>>> [1, 3, 4]
예제 3) 생성(append)

numbers = [1, 2, 3, 4]
numbers.append(5)

print(numbers)
>>> [1, 2, 3, 4, 5]
예제 4) 삽입(insert)

numbers = [1, 2, 3, 4]
numbers.insert(2, 9)

print(numbers)
>>> [1, 2, 9, 3, 4]
  • 문자열 데이터 바꾸기
    문자열 name의 인덱스 0에 'C'를 새롭게 지정해주었더니 오류가 발생하였다.
    TypeError: 'str' object does not support item assignment은 변형이 불가능하다는 메시지이다.
    이처럼 문자열은 리스트와 달리 데이터의 생성, 수정이 불가능하다.
name = 'HOEHOU'
name[0] = 'C'

print(name)

>>> TypeError: 'str' object does not support item assignment
반응형
저작자표시

'코딩배우기' 카테고리의 다른 글

Dictionary(feat. key-value)  (0) 2021.01.22
리스트(list)  (0) 2021.01.22
8일차)프로그래밍 핵심 개념 in Python(return, optional parameter)  (0) 2020.09.05
7일차)프로그래밍 핵심 개념 in Python(boolean, type)  (0) 2020.08.31
객체 지향 프로그래밍 개념  (0) 2020.08.28
    '코딩배우기' 카테고리의 다른 글
    • Dictionary(feat. key-value)
    • 리스트(list)
    • 8일차)프로그래밍 핵심 개념 in Python(return, optional parameter)
    • 7일차)프로그래밍 핵심 개념 in Python(boolean, type)
    호이호우
    호이호우
    나의 관심 콘텐츠를 즐겁게 볼 수 있는 Beatlefeed!

    티스토리툴바