Python 자료형
자료형
- 문자열 인덱싱
- a = "Life is too short, You need Python"
이라는 문자열을 지정하면 파이썬에서는 각 문자마다 번호를 매긴다.
Life is too short, You need Python
0 1 2 3
0123456789012345678901234567890123 - 첫번 째의 L을 0으로 지정하여 순서대로 지정된다.
- a = "Life is too short, You need Python"
a[3]
출력 : 'e' - 이 외에도 -기호를 이용하면 뒤에서부터 읽기 시작한다. 0과 -0은 같기 때문에 -는 -1부터 시작된다.
- 문자열 슬라이싱
- 문자열 인덱싱을 이용하여 단어들을 뽑아 내는 것이다.
- 하나씩 뽑는 것도 가능하며, a[시작번호:끝번호] 처럼 여러 개를 뽑는 것도 가능하다.
- 시작번호나 끝번호를 생략하면 시작부터 끝번호까지 혹은 시작번호부터 끝까지 출력이 된다.
- 이를 이용하여 문자열을 바꾸려고 한 문자의 인덱싱을 활용하여 바꾸면 바뀌지 않는다. 왜냐하면 문자열은바뀌지않는 자료형이기 때문이다.
- 하지만 슬라이싱을 이용하여 바꾸면 바꿀 수 있다. 예를들어
>>> a = "Pithon"
>>> a[:1] 'P'
>>> a[2:] 'thon'
>>> a[:1] + 'y' + a[2:]
'Python' - 문자열 포매팅
- printf 방식과 비슷하며 %다음에 원하는 문자를 입력하면 된다. 문자는 변수나 상수 모두 가능하다.
- 여러개일 경우 괄호()와 콤마(,)를 이용한다.
- 문자열 관련 함수
count
|
문자 개수 세기
|
find
|
위치 알려주기(없으면 -1 반환)
|
index
|
위치 알려주기(없으면 오류)
|
join
|
문자열 삽입
|
upper
|
소문자 -> 대문자 변환
|
lower
|
대문자 -> 소문자 변환
|
lstrip
|
왼쪽 공백 지우기
|
rstrip
|
오른쪽 공백 지우기
|
strip
|
양쪽 공백 지우기
|
replace
|
문자열 바꾸기
|
- 고급 문자열 포매팅
- format 함수를 이용하여 사용이 가능하다
- >>> "I eat {0} apples".format(3)
'I eat 3 apples'
>>> "I eat {0} apples".format("five")
'I eat five apples'
>>> number = 3 >>> "I eat {0} apples".format(number)
'I eat 3 apples' - {0}을 대신해서 인덱스를 이요하는 것도 가능하다.
>>> "I ate {number} apples. so I was sick for {day} days.".format(number=10, day=3)
'I ate 10 apples. so I was sick for 3 days.' - 왼쪽 정렬 - ":<"
오른쪽 정렬 - ":>
가운데 정렬 - ":^"
ex) >>> "{0:^10}".format("hi")
' hi ' - 단, 정렬을 할때 공백대신 문자열을 넣어서 정렬할 수 있다. <,>,^ 바로앞에 문자 값을 넣어야 한다.
ex)>>> "{0:=^10}".format("hi")
'====hi====' - 소수점은 문자열 표현 방식에 썼던 것 처럼 자리수 표현을 해주면 된다.
리스트 자료형
- 리스트는 간단하게 []와 요소들 사이에 ,를 넣어주는 방식이다.
- 리스트 역시 인덱싱과 슬라이싱 사용 가능
- 슬라이싱은 끝문자를 포함 하지 않는다.
[a:b] -> a <= x < b - 리스트 안에 리스트를 넣을 수 있으며, 그 또한 인덱싱이 가능하다.
- 리스트 연산자
- 리스트 더하기(+) : 리스트를 합치는 기능
- 리스트 반복하기(*) : 리스트를 반복시킨다
- 리스트 수정
- 리스트 수정시 a[1:2] = ['a','b','c']로 수정하는 것과 a[1] = ['a','b','c']로 수정하는 것은 전혀 다르다.
- a[1]은 리스트의 두 번째 요소를 ['a','b','c']로 바꾼다는 말이고, a[1:2]는 a[1]과 a[2]사이의 리스트를 ['a','b','c',]로 바꾼다는 말이다.
- a[시작문자:끝문자] = [ ] 를 사용하면 시작부터 끝문자-1까지의 요소를 삭제할 수 있다.
- 이 외에도 del a[x], del[x:y]를 이용해 삭제가 가능하다.
- del은 파이썬의 자체적인 삭제 함수이며 del 객체 방식으로 사용
- 리스트 관련 함수
| append(x) | 리스트에 요소 추가 | 맨 뒤에 x 추가 |
| sort | 리스트 정렬 | 요소를 순서대로 정렬(알파벳 순도 가능) |
| reverse | 리스트 뒤집기 | 리스트를 순서대로 정렬한뒤 역순이 아닌 단순한 거꾸로 뒤집기 |
| index(x) | 위치 반환 | 값이 없으면 오류 발생 |
| insert(a,b) | 요소 삽입 | a위치에 b를 삽입 |
| remove(x) | 요소 제거 | 첫 번째 x를 제거 |
| pop | 요소 꺼내기 | 맨 마지막 요소 출력 후 삭제 |
| count(x) | 요소 개수 세기 | x의 숫자를 조사해 개수를 출력 |
| extend(x) | 리스트 확장 | 원래 리스트에 x의 리스트를 더함 |
튜플 자료형
- 리스트와 유사하나 [과]가 아닌 (과)을 이용한다.(괄호는 생략 가능)
- 값을 바꿀 수 없다.
- 튜플도 인덱싱, 슬라이싱, 더하기, 반복하기를 리스트와 동일하게 사용 가능하다.
딕셔너리 자료형
- Key와 Value를 한 쌍으로 갖는 자료형
- Hash와 같은 맥락이다.
- 기본적인 형태는
{Key1:Value1, Key2:Value2, Key3:Value3 ...} - Value에는 리스트도 넣을 수 있다.
- 딕셔너리를 생성해 놓은 상태에서는
a[Key] = Value 를 통해서 쌍을 추가할 수 있다. - del a[Key] 를 통해서 딕셔너리 삭제가 가능하다.
- 딕셔너리는 Key를 기반으로 Value를 추출하는 것이기 때문에 중복되자 않게 사용하는 것이 중요하다.
- 딕셔너리 관련 함수
| keys | Key리스트 만들기 |
dict_keys에 Key 값을 모아 놓은 객체 리턴
리스트로 변환하려면 list(a.keys())를 활용
|
| values | Value리스트 만들기 | dict_values에 Value 값을 모은 객체를 리턴 |
| items | Key, Value 쌍 얻기 | dict_items에 Key와 Value 쌍을 객체로 리턴 |
| clear | 쌍 모두지우기 | 모든 요소 삭제 |
| get(Key) | Key로 Value얻기 |
Key에 해당하는 Value 리턴
존재하지 않는 Key는 오류 발생 시킴
|
| Key in Dictionary | 딕셔너리에 Key 있는지 조사 | Boolean값으로 존재 유무 리턴 |
집합 자료형
- 집합에 관련된 것들을 쉽게 처리하기 위해 만든 자료형이다.
- >>> s1 = set([1,2,3])
>>> s1
{1, 2, 3}
위와 같은 방식으로 사용한다. 문자열도 저장이 가능하다. - 특징으로는
- 중복을 허용하지 않는다.
- 순서가 없다.
- 이러한 특징 때문에 인덱싱을 통해 자료 값을 얻을 수 없다.
- 중복을 허용 하지 않는 특징은 자료형 중복을 제거하기 위한 필터 역할로도 쓰인다.
- 집합계산
" & " - 교집합
" | " - 합집합
" - " - 차집합
| add(x) | 값 한개 추가 |
| update([a,b,c]) | 값 여러개 추가 |
| remove(x) | 값 제거 |
자료형의 참 거짓
- 튜플이나 리스트에서 비어있으면 거짓, 요소가 있으면 참을 출력한다.
변수
- 파이썬은 다른 언어와 달리 자료형을 명시하지 않아도 저장된 값을 스스로 판단해 자료형을 알아낸다.
- 파이썬에서 a = 3이라고 저장하면 상수가아닌 정수형 객체로 저장되어 바로 함수를 사용할 수 있다.
- 변수는 del 함수로 삭제가 가능하지만, 굳이 삭제할 필요는 없다.
- 리스트를 복사할 때는 같은 값을 가리키기 때문에 원본을 수정하면 복사된 값도 수정된다.
- 이와 딜리 복사해 넣으면서 다른 리스트를 가리키게 하는 방법은
- [:] 를 이용한다.
a = b[:] - copy 모듈을 이용한다.
from copy import copy
b = copy(a)
댓글
댓글 쓰기