이 포스팅은 Python Basic 시리즈 13 편 중 2 번째 글 입니다.

  • Part 1 - 01: Introduction
  • Part 2 - This Post
  • Part 3 - 03: Variables
  • Part 4 - 04: Function Design Recipe (FDR)
  • Part 5 - 05: String
  • Part 6 - 06: Conditional Statement
  • Part 7 - 07: Module
  • Part 8 - 08: Class & Method
  • Part 9 - 09: List
  • Part 10 - 10: Loop
  • Part 11 - 11: File
  • Part 12 - 12: Other Data Types
  • Part 13 - 13: Class
▼ 목록 보기

자료형

파이썬은 알아서 처리해주니까 이부분을 무시하고 작성하는 경향이 있을 수 있다. 하지만 여전히 연산을 할때, 해당 변수의 자료형을 인지한 상태로 수행해야 한다. 명시적 형변환을 하는 것을 잊지 말자.

String

문자열 나누기

Pithon -> Python 으로 바꾸는 작업을 진행해보자.

# 잘못된 예
a = "Pithon"
a[1] = 'y'

불가능하다. 문자열의 요소값은 바꿀 수 있는 값이 아니다.

# 옳은 예
a = "Pithon"
a[:1] + 'y' +a[2:]

슬라이싱을 사용하여 새로운 문자열을 만들 수 있다. 또한, 슬라이싱을 할때 마지막 값은 미만으로 인식한다. 이런 방법을 사용하지말고, 기본 메서드를 사용하면 더 쉽게 가능하다.

문자열 관련 함수들

# 문자 개수 세기
a.count('b')

# 위치 알려주기 1
a.find('b')			# 있으면 처음으로 나온 위치 반환, 없으면 -1

# 위치 알려주기 2
a.index('t')		# 있으면 처음으로 나온 위치 반환, 없으면 에러

# 문자열 삽입
a = ","
a.join('abcd')		# 'a,b,c,d'

# 소문자를 대문자로
a = "hi"
a.upper()			# 'HI'

# 문자열 바꾸기
a = "Life is too short"
a.replace("Life", "Your leg")		# ’Your leg is too short’

# 문자열 나누기
a = "Life is too short"
a.split()						# [’Life’, ’is’, ’too’, ’short’]

a = "a:b:c:d"
a.split(:) 				# [’a’, ’b’, ’c’, ’d’]

List

수정

>>> a[1:2] [2]
>>> a[1:2] = [a, b, c]
>>> a
[1, a, b, c, 4]
>>> a[1] = [a, b, c]
>>> a
[1, [a, b, c], 4]

2번 예제에서 리스트를 a[1:2] = [‘a’, ‘b’, ‘c’]로 수정하는 것과 a[1] = [‘a’, ‘b’, ‘c’]로 수정하는 것은 전혀 다른 결과값을 갖게 되므로 주의해야 한다. a[1] = [‘a’, ‘b’, ‘c’]는 리스트 a의 두 번째 요소를 [‘a’, ‘b’,‘c’]로 바꾼다는 말이고 a[1:2]는 a[1]에서 a[2] 사이의 리스트를 [‘a’, ‘b’, ‘c’]로 바꾼다는 말이다. 따라서 a[1] = [‘a’, ‘b’, ‘c’]로 수정하게 되면 위와는 달리 리스트 a가 [1, [‘a’, ‘b’,‘c’], 4]라는 값으로 변하게 된다.

삭제

[ ] 사용해 리스트 요소 삭제하기

>>> a[1:3] = [ ]
>>> a
[1, c, 4]

del 함수 사용해 리스트 요소 삭제하기

>>> a
[1, c, 4]
>>> del a[1]
>>> a
[1, 4]

리스트 관련 함수

append

>>> a = [1, 2, 3]
>>> a.append(4)
>>> a
[1, 2, 3, 4]

sort

>>> a = [1, 4, 3, 2]
>>> a.sort()
>>> a
[1, 2, 3, 4]
>>> a = [a, c, b]
>>> a.sort()
>>> a
[a, b, c]

insert

>>> a = [1, 2, 3]
>>> a.insert(0, 4)
[4, 1, 2, 3]

remove

>>> a = [1, 2, 3, 1, 2, 3]
>>> a.remove(3)
[1, 2, 1, 2, 3]

첫번째로 나오는 녀석을 삭제한다.

pop

pop( )은 리스트의 맨 마지막 요소를 돌려 주고 그 요소는 삭제하는 함수이다.

>>> a = [1,2,3] >>> a.pop()
3
>>> a
[1, 2]

Tuple

튜플(tuple)은 몇 가지 점을 제외하곤 리스트와 거의 비슷하다. 리스트와 다른 점은 다음과 같다.

  • 리스트는 []으로 둘러싸지만 튜플은 ()으로 둘러싼다.
  • 리스트는 그 값의 생성, 삭제, 수정이 가능하지만 튜플은 그 값을 바꿀 수 없다.

딕셔너리 자료형

사람은 누구든지 “이름” = “홍길동”, “생일” = “몇 월 몇 일” 등으로 구분 할 수 있다. 파이썬은 영리하게도 이러한 대응 관계를 나타낼 수 있는 자료형을 가지고 있다. 요즘 사용하는 대부분의 언어들도 이러한 대응 관계를 나타내는 자료형을 갖고 있는데, 이를 연관 배열(Associative array) 또는 해시(Hash)라고 한다.

파이썬에는 이 자료형을 딕셔너리라고 하는데, 기본적으로 Key, Value 라는 것을 한 쌍으로 갖는 자료형이다. 딕셔너리가 튜플이나 리스트와 가장 다른 점이라면, 순차적으로 해당 요소값을 구하지 않고 Key 를 통해 Value를 얻는다는 점이다. 처음부터 다 뒤져보는 것이 아니고, Key가 있는 곳만 탐색한다는 것이다.

Key list

>>> a = {name: pey, phone: 0119993323, birth: 1118}
>>> a.keys()
dict_keys([name, phone, birth])

Items

>>> a.items()
dict_items([(name, pey), (phone, 0119993323), (birth, 1118)])

items 함수는 key와 value의 쌍을 튜플로 묶은 값을 dict items 객체로 돌려준다.

Get

Key 로 Value 를 얻어보자.

>>> a = {name:pey, phone:0119993323, birth: 1118}
>>> a.get(name)
pey
>>> a.get(phone)
0119993323