이 포스팅은 Python Basic 시리즈 13 편 중 2 번째 글 입니다.
목차
자료형
파이썬은 알아서 처리해주니까 이부분을 무시하고 작성하는 경향이 있을 수 있다. 하지만 여전히 연산을 할때, 해당 변수의 자료형을 인지한 상태로 수행해야 한다. 명시적 형변환을 하는 것을 잊지 말자.
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’