데이터타입의 중요성을 오늘 또 한 번 느꼈다....
파이썬에는 내장 된 함수 및 라이브러리가 많아서 편리한 것이 사실이지만,
그 안의 데이터 타입에 따라서 쓸 수 있는 함수들이 다르다.
당연한 이야기이지만
문자 / 문자 (문자 나누기 문자)를 출력하라고 하면 오류가 나듯이,
데이터 타입에 안 맞는 함수를 불러내면 오류가 발생한다.
이건 상당히 기초적이면서 상당히 중요한 문제이고, 여기서 확실하게 정리를 하고
넘어가야한다.
1. 숫자
- 우리가 흔히 아는 숫자형 데이터 타입에는 int, float 등 다양한 것들이 있는데
기초적인 것이라 생략하겠다.
2.텍스트 (string)
- 가장 많이 나오는 string 타입이다. 기본적으로 파이썬에 input(입력을) 요청하면
string type으로 받게 된다.
slicing은 텍스트를 쪼개는 스킬인데
a='Good Morning'
print(a[0:4]) = good이 출력된다.
[::-1] 을 사용할 경우 역순으로 추출하게 된다.
in 연산자는 프로그래머가 원하는 부분이 문자열 안에 존재하는지를 확인한다.
a='Good Morning'
print('Good' in a)
True가 출력된다.
len은 문자열 길이를 반환하는 함수인데 유용하게 사용 된다.
텍스트 - Method
startswith() - 원본 문자열이 매개변수로 입력한 문자열로 시작되는지를 판단
True or False 반환
endswitch() - 원본 문자열이 매개변수로 입력한 문자열로 끝나는는지를 판단
True or False 반환
find() - 문자열이 존재하는 위치를 앞에서부터 찾는다. 존재하지 않으면 -1 반환, 시작은 0부터
rfind() - 문자열이 존재하는 위치를 뒤에서부터 찾는다. 존재하지 않으면 -1 반환, 시작은 0부터
count() - 원본 문자열 안에 입력한 매개변수가 몇 번 나오는지 count한다.
lstrip() - 원본 문자열 왼쪽 공백을 제거한다.
rstrip() -원본 문자열 오른쪽 공백을 제거한다.
strip() - 원본 문자열 좌우 공백을 제거한다. ' Strip '.strip() --> 'Strip'
isalpha() - 원본 문자열이 알파벳(영문,한글)으로만 이루어져 있는지를 체크
True or False 반환
isnumeric() - 원본 문자열이 수로만 이루어져 있는지를 체크
True or False 반환
isalnum() - 원본 문자열이 알파벳과 수로만 이루어져 있는지를 체크
'1234ABC'.isalnum() ==> True
'1234 ABC'.isalnum() ==> False (공백 때문)
replace() - 원본 문자열에서 찾고자 하는 문자열을 바꾸고자 하는 문자열로 변경
split() - 문자열을 나누어 리스트를 만듭니다.
ex) a= 'Apple, Orange, Kiwi' b= a.split(',') print(b)
['Apple', 'Orange', 'Kiwi']
type(b) ==> <class 'list'>
upper() - 원본 문자열을 모두 대문자로 내놓는다.
lower() - 원본 문자열을 모두 소문자로 내놓는다.
format() - 형식을 갖춘 문자열을 만들 때 사용.
a = 'My name is {0}. I am {1} years old.'.format('Mario',40)
print(a)
'My name is Mario. I am 40 years old.'
3. 리스트 (list)
- 배열 느낌이다. 말그대로 a= [1, 2, 3, 4, 5] 정의하면 a는 리스트다.
a[0] = 1 이 출력된다. 여느 index와 마찬가지로 0부터 count 한다는 뜻.
리스트 - Method
append() - 리스트 끝에 새 요소를 추가한다.
a=[1,2,3]
a.append[4,5,6]
a >>> [1,2,3,[4,5,6]]
extend()
a= [1,2,3]
a.extend([4,5,6])
a >>> [1,2,3,4,5,6]
insert()
a = [2, 4, 5]
a.insert(0,1)
a= [1, 2, 4, 5]
remove() - 매개변수로 입력한 데이터를 리스트에서 찾아 발견한 첫 번째 요소를 제거한다.
a=['BMW', 'Benz','VOLKSWAGEN','AUDI']
a.remove('BMW')
a >>> ['Benz','VOLKSWAGEN','AUDI']
pop() - 리스트 마지막 요소를 뽑아서 리스트에서 제거한다.
a = [1, 2, 3, 4, 5]
a.pop()
a = [1, 2, 3, 4]
a = [1, 2, 3, 4, 5]
a.pop(2)
[1, 2, 4, 5]
index() - 리스트 내에서 매개변수로 입력한 데이터와 일치하는 첫 번째 요소의 값을 알려준다.
a = ['apple', 'banana', 'kiwi']
a.index('apple')
>>> 0
count() - 매개변수로 입력한 데이터와 일치하는 요소가 몇 개인지 체크
a = [1, 100, 2, 100, 3, 100]
a.count(100)
>>> 3
sort() - 리스트 내의 요소를 정렬한다.
a = [3, 4, 5, 1, 2]
a.sort()
a >>> [1, 2, 3, 4, 5]
a.sort(reverse=True)
a >>> [5, 4, 3, 2, 1]
reverse() - 리스트 내의 요소를 반대로 뒤집는다.
a= [3, 4, 5, 1, 2]
a.reverse()
a >>> [2, 1, 5, 4, 3]
b= ['안', '녕', '하', '세', '요' -> ['요', '세', '하', '녕', '안']
4.튜플 (Tuple)
- 리스트와 비슷한데 튜플은 N개의 요소로 된 집합이다.
- 리스트는 데이터 변경 가능하나 튜플은 데이터 변경 불가능이다.
- 리스트는 목록형식 데이터를 다루는 것에 적합하고, 튜플은 위경도 좌표나 RGB색상처럼 작은 규모의 자료구조를구성하기에 적합하다.
생성방법
방법 1 ㅣ a=(1,2,3) ㅣ (1, 2, 3)
방법 2 ㅣ a = 1, 2, 3, 4 ㅣ (1, 2, 3, 4)
슬라이싱 동일.
연산자 튜플간 결합 가능 + 활용
튜플의 패킹과 언패킹
#패킹
a= 1, 2, 3
(1,2,3)
#언패킹
a= 1,2, 3
print(a)
one, two, three = a
print(one)
>>>one => 1
>>>two => 2
>>>three => 3
패킹은 여러 데이터를 튜플로 묶는 것.
언패킹은 튜플의 요소를 여러 개의 변수에 할당하는 것.
튜플 Method
index() - 리스트와 동일
count() - 리스트와 동일
5.딕셔너리 (Dictionary)
- 리스트와 비슷하다. 딕셔너리의 첨자는 키(KEY)는 반드시 유일하다.
- 딕셔너리는 키와 값이 쌍으로 이루어져 있다.
dic={}
dic['파이썬'] = 'python.org'
dic['마이크로소프트'] = 'microsoft.com'
dic['애플'] = 'apple.com'
dic
dic.keys()
dic.valuse()
실행결과
{'파이썬': 'python.org', '마이크로소프트': 'microsoft.com', '애플': 'apple.com'}
dict_keys(['파이썬', '마이크로소프트', '애플'])
dict_values(['python.org', 'microsoft.com', 'apple.com'])
딕셔너리 Method
keys() - 위의 실행결과 참고
values() - 위의 실행결과 참고
items() - 키와 밸류 값을 다 반환한다.
dict_items([('파이썬', 'python.org'), ('마이크로소프트', 'microsoft.com'), ('애플', 'apple.com')])
in 연산자 - 문자열 존재 유무 판별
print('애플' in dic.keys())
>>> True
pop() - 해당 부분 제거
dic.pop('애플')
clear() - 딕셔너리 안의 내용 전부 clear
dic.clear()
'Tech Blog > Python' 카테고리의 다른 글
Django 설치 mac,window 환경 링크 (0) | 2021.06.24 |
---|---|
Python - 변수(인자)의 종류 (0) | 2021.06.24 |
파이썬 - 문자열 제거 및 추출과 revsqueeze, hex to int 실습 (0) | 2021.06.22 |
Python - Class, Method, Instance 정리 글 (0) | 2021.06.20 |
파이썬 Tensorflow 데이터 사이언스에 빠져들다!! (0) | 2021.05.11 |