본문으로 바로가기

PYTHON의 자료형을 알아보자

category 파이썬 2019. 7. 22. 15:31
728x90

파이썬 자료형

* 숫자형

1. int

- 정수형으로 양, 음의 정수 및 0을 대입 가능

a = 321
b = -123
type(a)
type(b)

>>> return 'int'

 

2. float

- 실수형으로 소수점 단위 표현이 가능

a = 4.2
type(a)

>>> return 'float'

- 다른 표현으로 scientific notation 방식 표현

a = 3.4e-23 # == 3.4*10^-23과 표현이 같음. e의 대소문자는 상관없음

 

3. complex

- 복소수 자료형

a = complex(2, 3)
a
>>> return 2+3j
a = 3-5j
a
>>> return 3-4j
type(a)
>>> return 'complex'

 

숫자형에 사용이 가능한 Operations

Operation

Result

x+y

xy의 합

x-y

xy의 차

x*y

xy의 곱

x/y

xy의 몫

x//y

xy의 정수로 내림한 몫

x% y

x/y의 나머지

-x

음의 x

+x

양의 x

abs(x)

x의 절댓값, 인자가 복소수일 경우 크기 반환

int(x)

정수로 변환된 x

float(x)

실수로 변환된 x

complex(re, im)

실수부 re와 허수부 im으로 구성된 복소수 im의 기본값은 0

c.conjugate()

복소수 c의 켤레

divmod(x, y)

(x//y, x&y)

pow(x, y)

xy거듭제곱

x ** y

xy거듭제곱

bin(x)

x10진수로 출력

oct(x)

x8진수로 출력

hex(x)

x16진수로 출력


* 문자열 자료형

 

1. 문자열 

- 문자의 집합을 의미

a = 'this is school'
type(a)
>>> return 'str'

- 문자열의 표현방법은 4가지가 존재

a = 'this is school' #작은 따옴표로 묶기
b = "this is school" #큰 따옴표로 묶기
c = '''this is school''' #작은 따옴표 3개로 묶기
d = """this is school""" #큰 따옴표 3개로 묶기

 

2. 문자열의 연산

- 파이썬의 문자열은 더하거나 곱하기가 가능

a = 'i ' + 'do'
>>> return 'i do' #붙여진 문자열

b = 'i' * 3
>>> return 'iii' #3번만큼 반복된 문자열

 

3. 문자열 인덱싱과 슬라이싱

- 문자열을 편집하기 위한 인덱싱과 슬라이싱

a = 'learning python'
a[0]
>>> return 'l' #a의 0번째 문자를 가져옴

a[-2]
>>> return 'o' #a의 뒤에서 2번째 문자를 가져옴

a[3:7]
>>> return 'rnin' #a의 3번째부터 7번째가지의 문자를 가져옴

 

4. formatting

- 문자열 내의 특정한 값을 바꿀 시 사용

a = 20
f'{a}and{a}'
>>> return '20and20' 
#f를 붙이고 문자열을 시작하면 중괄호에 변수값을 불러 올 수 있음

 

5. 관련 함수

- 문자열 내의 자체적으로 가지고 있는 함수

a = 'learning python'

a.upper()
>>> return 'LEARNING PYTHON' #대문자로 변환

a.lower()
>>> return 'learning python' #소문자 변환

a.replace('py', 'hi')
>>> return 'learning hithon' #'py'를 'hi'로 변환

a.split()
>>> return ['learning', 'python'] #공백을 기준으로 문자열을 나누어 리스트로 리턴

* 리스트 자료형

-- 리스트는 여러 요소들을 묶어 하나의 변수로 활용할 때 사용

-- 리스트의 요소는 4가지이며 요소들의 자료형은 어떤 형식이든 상관없음

-- 파이썬의 동적 배열로 자유롭게 확장할 수 있는 구조를 가짐

-- 요소들은 [] 안에 컬렉션을 표현, 요소는 저마다 다른 타입이 되며 (,)로 구분

 

1. 리스트 인덱싱

- 요소의 시작은 [0]부터 시작하고 참조 시 음수를 사용할 수 있으며 [-1]은 마지막 요소 [-2]는 뒤에서 두 번째 요소를 가리킴

num = [1, 2, 3]
num[0]
>>> return 1

num[-1]
>>>return 3

num[-2]
>>> return 2

 

2. 리스트 슬라이싱

- 리스트 일부 요소를 선택하는 방식.

- 리스트[처음 인덱스 : 마지막 인덱스]로 부분집합의 범위를 지정

- 인덱스의 시작은 [0]부터 시작하고 마지막 인덱스는 원하는 인덱스 위치의 +1을 해서 지정

- 첫 인덱스 생략 시 0부터 시작하고 마지막 인덱스 생략시 리스트 끝까지 포함시킴

num = [1, 2, 3, 4, 5, 6, 7]
num[1:3]
>>> return [2, 3]
#배열의 1번 요소와 3번째요소 바로전을 출력시킴

num[:3]
>>> return [1, 2, 3]
#0번째 요소부터 참조

num[1:]
>>> return [2, 3, 4, 5, 6, 7]
#1번째 요소부터 끝까지 참조

 

3. 리스트 요소 추가, 수정, 삭제

- 리스트에 새로운 요소를 추가할 때는 '리스트. append()'를 사용

- 수정 시 리스트 인덱싱을 이용해 값을 변경

- 삭제는 'del 요소'를 이용해서 요소 삭제

a = [10, 'and', 4.4]

a.append('or')
a
>>> return [10, 'and', 4.4, 'or']
#추가시킨 요소는 리스트 맨뒤에 추가됨

a[0] = 11
a
>>> return [11, 'and', 4.4, 'or']
#0번째 요소를 11로 변경

del a[1]
a
>>> return [10, 4.4, 'or']
#a의 1번째 요소를 삭제

 

4. 리스트 병합과 반복

- 두 개의 리스트를 병합하기 위해서는 플러스(+)를 사용,  이때 두 리스트는 순서대로 병합된 새로운 하나의 리스트로 변경 

- 하나의 리스트를 N번 반복하기 위해서는 '리스트 *N'과 같이 표현 리스트 하나를 반복해서 만들어지는 새로운 리스트를 생성

a = [1, 2]
b = [3, 4, 5]
c = a + b
c
>>> return [1, 2, 3, 4, 5]
#a의 리스트와 b의 리스트를 합침

d = a * 3
d
>>> return [1, 2, 1, 2, 1, 2]
#a리스트를 3번 반복

 

5. 리스트 검색

- 리스트 속 특정 요소 검색은 index()를 사용

- 특정 요소 개수 체크는 count() 사용

mylist = "This is a book That is a pencil".split()
i = mylist.index('book')
n = mylist.count('is')
print(i, n)
>>> return 3 2
#split으로 공백기준으로 분리된 리스트를 만들고 'book'의 위치를 인덱싱 'is'의 개수는 카운트 한 결과 출력

 

6. List Compreshesion

- 리스트 속에서 for 루프를 사용해 반복적으로 표현식을 실행하여 리스트 요소들을 정의하는 특별한 용법

- 컬렉션으로부터 요소를 하나씩 가져와 표현식을 실행하여 결과를 리스트에 담음

[표현식 for 요소 in 컬렉션 [if 조건식]]
list = [n ** 2 for n in range(10) if n % 3 == 0]
print(list)
>>> return [0, 9, 36, 81]
#요소 n을 제곱하며 범위는 10까지(range에대해서는 나중에 다루겠다)
#조건은 요소n의 나머지가 3으로 나눌시 0으로 떨어지는 요소만 저장

* 튜플 자료형

- 리스트와 비슷하지만 두 가지의 다른 점이 존재

- 리스트는 []로 감싸지만 튜플은 ()로 감싸 짐

- 리스트 안의 요소들은 생성, 삭제, 수정이 가능한 동적 배열이지만 튜플은 할 수 없는 정적 배열

 

1. 튜플의 생성

t = (1, 2, 3)
t2 = (1, 2, 3,('a', 'b', 'c'))
#리스트와 같은 튜플안의 튜플이 가능

 

2. 슬라이싱, 더하기, 곱하기

- 리스트만큼의 다양한 조작이 불가능하지만 인덱싱과 슬라이싱은 가능하다

t[:2]
>>> retrun (1, 2)
#리스트와 같은 방식

t+t2
>>> retrun (1, 2, 3, 1, 2, 3,('a', 'b', 'c'))
#튜플의 더하기

t*3
>>> return (1, 2, 3, 1, 2, 3, 1, 2, 3)
#튜플의 곱셈

* 딕셔너리 자료형

- 특징으로는 key와 value가 짝이 되어 하나의 요소를 구성하게 됨

- key를 불러오면 연결된 value를 불러올 수 있고 value를 하나의 요소나 리스트로 구성하게 되면 강력한 도구가 됨

- 주의 사항으로 key의 값은 딕셔너리 속의 고윳값이어야 하고 string이나 숫자형은 unhashable type 이어야 함

 

1. 생성법

- 다른 자료형과는 조금 다른 형태

dict = {'key1' : 'value', 'key2' : '123123', 'key3' : ['list', 'can', 'be', 'a', 'value']}
#key의 값은 'key1', 'key2', 'key3'이며 해당하는 value는 (:)뒤에 있는 항목

#딕셔너리 추가
dict['key4'] = ['here', 'is', 'another', 'value']

#딕셔너리 삭제
del dict['key1']

 

2. 사용법

- key를 이용해서 값을 불러오는 방식

dict['key2']
>>> retrun '123123'
#key값을 불러와서 사용

 

3. 관련 함수

dict.keys() #딕셔너리 키값을 받음
>>> return dict_keys(['key2', 'key3', 'key4'])

dict.items() #key와 value가 매치된 dict_item객체 생성
>>> retrun dict_items([('key2', '123123'), ('key3', ['list', 'can', 'be', 'a', 'value']), 
('key4', ['here', 'is', 'another', 'value'])])

'key2' in dict
>>> retrun true
'key' in dict
>>> return false
#'key2', 'key'가 dict안에 있는지 여부 확인 있으면 true, 없으면 false 반환

* 집합(set) 자료형

1. 집합 생성 및 특징

s1 = set([1, 2, 2, 3, 3, 3, 4, 4, 4, 4])
s1
>>> return {1, 2, 3, 4}

s2 = set('hello123')
s2
>>> retrun {'1', '2', '3', 'e', 'h', 'l', 'o'}

#특징 요소들이 unique함(중복되지 않음)
#순서가 없음
#**이런 특징들을 이용해서 종종 list안에 중복을 제거하는 용도로 사용하기도 함

 

2. 관련 함수

s2.add(1)
s2
>>> retrun {'o', '3', '1', 'e', '2', 'l', 'h', '1'}

s2.update([2, 3, 4, 5])
s2
>>> retrun {'o', '3', '1', 'e', '2', 'l', 'h', '1', 2, 3, 4, 5}

s2.remove(3)
s2
>>> retrun {'o', '3', '1', 'e', '2', 'l', 'h', '1', 2, 4, 5}
#3이라는 요소 삭제

 

3. 활용법

s1 & s2 #s1 와 s2의 교집합
>>> retrun {1, 2, 4}

s1 | s2 #s1과 s2의 합집합
>>> return {'o', 1, ,2, 3, 4, '3', 'e', 5, '2', 'l', 'h', '1'}

s1 - s2 #s1과 s2의 차집합
>>> retrun {1, 2, 3, 4}
728x90