본문 바로가기

Algorithm

알고리즘 기초 및 파이썬 기초 문법(3) - 리스트, 튜플, 문자열 자료형

리스트 자료형

출처 : 이코테

- 여러 개의 데이터를 연속적으로 담아 처리하기 위해 사용

- 리스트 대신 배열 혹은 테이블로 불리기도 함

1. 리스트 자료형 초기화

#직접 데이터를 넣어 초기화
a = [1, 2, 3, 4]
# [1, 2, 3, 4]

#네 번째 원소만 출력
print(a[3])
# 4

#크기가 N이고, 모든 값이 0 인 1차원 리스트 초기화
n = 4
a = [0] * n
print(a)
# [0, 0, 0, 0]

#반목문을 이용해서 초기화
array = [i for i in range(4)]
print(array)
# [0, 1, 2, 3]


# 0 ~ 9까지 홀수만 포함하는 리스트
array = [i for i in range(10) if i % 2 == 1]
print(array)
# [1, 3, 5, 7, 9]

# 1 ~ 4까지 수 들의 제곱 값 리스트
array = [i * i for i in range(1, 5)]
print(array)
# [1, 4, 9, 16]

#2차원 리스트 초기화
n = 4
m = 3
array = [[0] * m for _ in range(n)]
print(array)
#[[0,0,0], [0,0,0], [0,0,0], [0,0,0]]

2. 인덱싱(Indexing)

a = [1, 2, 3, 4]

#두 번째 원소만 출력
print(a[1])
# 2

#뒤에서 첫 번째 원소 출력
print(a[-1])
# 4

3. 슬라이싱(Slicing)

a = [1, 2, 3, 4]

#두 번째 원소부터 네 번째 원소까지
print(a[1:4])
#[2, 3, 4]

 

4. 리스트 관련 메서드

출처 : 이코테

a = [1, 2, 3, 4]

a.append(5)
# [1, 2, 3, 4, 5]

a.sort()
# [1, 2, 3, 4, 5]

a.sort(reverse = True)
# [5, 4, 3, 2, 1]

a.reverse()
# [1, 2, 3, 4, 5]

a.insert(0, 1)
# 인데스 0에 1추가
# [1, 1, 2, 3, 4, 5]

a.remove(3)
# [1, 1, 2, 4, 5]

a.count(1)
# 2

a = [1, 2, 3, 4]
remove_set = {1, 3}

result = [i for i in a if i not in remove_set]
print(result)
# [2, 4]

튜플 자료형

- 한 번 선언된 값을 변경할 수 없음

- ( ) 소괄호를 이용

- 리스트에 비해 상대적으로 공간효율적

 

+ ) 튜플을 사용하면 좋은 경우

- 서로 다른 성질의 데이터를 묶어서 관리해야 할 때 (ex. 최단 경로 알고리즘)

- 데이터의 나열을 해싱(Hashing)의 키 값으로 사용해야 할 때

- 리스트보다 메모리를 효율적으로 사용해야 할 때

 

1. 튜플 초기화

#튜플 초기화
a = (1, 2, 3, 4)

# 첫 번째 원소만 출력
print(a[0])
# 1

# 두 번째 원소부터 네번째 원소까지
print(a[1:4])
# (2, 3, 4)

 

문자열 자료형

data = 'Hello World'
# Hello World

data = "Don't you know \"Python\"?"
# Don't you know "Python"?

a = "Hello"
b = "World"
print(a + " " + b)
# Hello World

a = "String"
print(a * 2)
#StringString

a = "ABCDEF"
print(a[2:4])
#CD