파이썬 문법 #2

2020. 11. 18. 22:43코딩테스트 준비/python

반응형

문자열 자료형

- 문자열 변수를 초기화할 때는 큰따옴표(")나 작은 따옴표(')를 이용합니다.

- 문자열 안에 큰따옴표나 작은따옴표가 포함되어야 하는 경우가 있습니다.

   - 전체 문자열을 큰따옴표로 구성하는 경우, 내부적으로 작은따옴표를 포함할 수 있습니다.

   - 전체 문자열을 작은따옴표로 구성하는 경우, 내부적으로 큰따옴표를 포함할 수 있습니다.

   - 혹은 백슬래시(\)를 사용하면, 큰따옴표나 작은따옴표를 원하는 만큼 포함시킬 수 있습니다.

data = 'Hello World'
print(data) # Hello World

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

 

문자열 연산

- 문자열 변수에 덧셈(+)을 이용하면 문자열이 더해져서 연결(Concatenate)됩니다.

- 문자열 변수를 특정한 양의 정수와 곱하는 경우, 문자열이 그 값만큼 여러 번 더해집니다.

- 파이썬은 문자열은 내부적으로 튜플과 유사하게 처리됩니다.

   - 문자열에 대해서도 마찬가지로 인덱싱과 슬라이싱을 이용할 수 있습니다.

 

리스트의 인덱싱과 슬라이싱

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

a = "String"
print(a * 3) # StringStringString

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

 

튜플 자료형

- 튜플 자료형은 리스트와 유사하지만 다음과 같은 문법적 차이가 있습니다.

   - 튜플은 한 번 선언된 값을 변경할 수 없습니다.

   - 리스트는 대괄호([])를 이용하지만, 튜플은 소괄호(())를 이용합니다.

- 튜플은 리스트에 비해 상대적으로 공간 효율적입니다.

 

사전 자료형

- 사전 자료형은 키(Key)와 값(Value)의 쌍을 데이터로 가지는 자료형입니다.

   - 앞서 다루었던 리스트나 튜플이 값을 순차적으로 저장하는 것과는 대비됩니다.

- 사전 자료형은 키와 값의 쌍을 데이터로 가지며, 원하는 '변경 불가능한(Immutable) 자료형'을 키로 사용할 수 있습니다. 

- 파이썬의 사전 자료형은 해시 테이블(Hash Table)을 이용하므로 데이터의 검색 및 수정에 있어서 O(1)의 시간에 처리할 수 있습니다.

data = dict()
data['사과'] = 'Apple'
data['바나나'] = 'Banana'
data['코코넛'] = 'Coconut'

print(data) # {'사과': 'Apple', '바나나': 'Banana', '코코넛': 'Coconut'}

if '사과' in data:
	print("'사과'를 키로 가지는 데이터가 존재합니다.") # '사과'를 키로 가지는 데이터가 존재합니다.

 

사전 자료형 관련 메서드

- 사전 자료형에서는 키와 값을 별도로 뽑아내기 위한 메서드 존재

   - 키 데이터만 뽑아서 리스트로 이용할 때는 keys() 함수를 이용합니다.

   - 값 데이터만을 뽑아서 리스트로 이용할 때는 values() 함수를 이용합니다.

 

사전 자료형 관련 함수

data = dict()
data['사과'] = 'Apple'
data['바나나'] = 'Banana'
data['코코넛'] = 'Coconut'

# 키 데이터만 담은 리스트
key_list = data.keys()

# 값 데이터만 담은 리스트
value_list = data.values()
print(key_list)
print(value_list)

# 각 키에 따른 값을 하나씩 출력
for key in key_list:
	print(data[key])

 

집합 자료형

- 집합은 다음과 같은 특징이 있습니다.

  - 중복을 허용하지 않습니다.

  - 순서가 없습니다.

- 리스트나 튜플은 순서가 있기 때문에 인덱싱을 통해 자료형의 값을 얻을 수 있습니다.

- 사전 자료형과 집합 자료형은 순서가 없기 때문에 인덱싱으로 값을 얻을 수 없습니다.

- 집합은 리스트 혹은 문자열을 이용해서 초기화할 수 있습니다.

   - 이때 set() 함수를 이용합니다.

- 혹은 중괄호 ({})안에 각 원소를 콤마(,)를 기준으로 구분하여 삽입함으로써 초기화 할 수 있습니다.

# 집합 자료형 초기화 방법 1
data = set([1, 1, 2, 3, 4, 4, 5])
print(data) # {1, 2, 3, 4, 5}

# 집합 자료형 초기화 방법 2
data = {1, 1, 2, 3, 4, 4, 5}
print(data) # {1, 2, 3, 4, 5}

 

집합 자료형의 연산

a = set([1, 2, 3, 4, 5])
b = set([3, 4, 5, 6, 7])

# 합집합
print(a | b) # {1, 2, 3, 4, 5, 6, 7}

# 교집합
print(a & b) # {3, 4, 5}

# 차집합
print(a - b) # {1, 2}
data = set([1, 2, 3])
print(data) # {1, 2, 3}

# 새로운 원소 추가
data.add(4)
print(data) # {1, 2, 3, 4}

# 새로운 원소 여러 개 추가
data.update([5, 6])
print(data) {1, 2, 3, 4, 5, 6}

# 특정한 값을 갖는 원소 삭제
data.remove(3)
print(data) # {1, 2, 4, 5, 6}
반응형

'코딩테스트 준비 > python' 카테고리의 다른 글

그리디 & 구현 # 1  (0) 2020.11.25
파이썬 문법 #4  (0) 2020.11.19
파이썬 문법 #3  (0) 2020.11.19
파이썬 문법 #1  (0) 2020.11.18
코딩 테스트 개요  (0) 2020.11.18