본문 바로가기
데이터 분석/기초

[Python] 여러 자료형

by hyeok1235 2022. 9. 29.

파이썬에는 여러 자료형을 이용해서 데이터를 관리할 수 있습니다. 파이썬의 자료형은 크게 수치 자료형, 불 자료형, 군집 자료형, 총 세 가지로 구분됩니다. 

 

1. 수치 자료형 (Numeric Data Type)

① 정수형 자료형 (int) : 개수, 번호 등 정수형 자료를 나타낼 때 사용합니다.

② 실수형 자료형 (float) : 소수점을 가지는 실수형 자료를 나타낼 때 사용합니다. 표현은 실수의 형식이지만, 비트연산을 하는 컴퓨터에서 연산이 진행되기 때문에 실수보다는 부동소수점에 가깝다고 할 수 있습니다. 대부분의 경우 근사치의 값이 저장된다는 것을 주의해야 합니다.

③ 복소수형 자료형 (complex) : 수의 체계에 맞게 정수와 실수 다음으로 복소수도 complex 자료형을 통해 표현이 가능합니다.

 

2. 순차적 자료형 (Sequence Data Type)

순차적 자료형의 특징

1) 원소 간의 순서가 존재합니다. 순서가 존재하기 때문에 인덱싱과 슬라이싱이 가능합니다.

2) "in" 연산자 - 멤버 조회.

3) "len" 연산자 - 길이 확인.

4) "+" 연산자 - 연결 연산. 단 같은 자료형 간에서만 사용 가능합니다.

5) "*" 연산자 - 반복 연산.

 

순차적 자료형의 종류

① 리스트 자료형 (list) : 다양한 값들의 모음을 저장합니다. 다양한 값들이라고 하면, C언어의 배열과는 달리 요소들이 서로 다른 자료형을 가지고 있어도 됩니다. 

 

- 기본적인 리스트 관련 조작

>>> a1 = [1, 2, 3, 4, 5]
>>> a1[2] 			# List indexing
3
>>> a1[-1]			# List indexing using negative number
5
>>> a1[3:]			# List slicing
[4, 5]
>>> a1[0] = 100			# Change the value of list's element
>>> a1
[100, 2, 3, 4, 5]
>>> del a1[1]			# Delete a list's element
>>> a1
[100, 3, 4, 5]

- 리스트와 관련된 메소드

>>> a2 = [3, 2, 1, 4]
>>> a2.append(5)		# Add an element at the end of the list
>>> a2
[3, 2, 1, 4, 5]
>>> a2.insert(2, 6)		# Add an element at the index given
>>> a2
[3, 2, 6, 1, 4, 5]
>>> a2.sort()			# Sort the list by ascending order
>>> a2
[1, 2, 3, 4, 5]
>>> a2.sort(reverse=True)	# Sort the list by descending order by "reverse=True" option
>>> a2
[5, 4, 3, 2, 1]

② 문자열 자료형 (str) : 문자들의 집합을 저장합니다. 

작은 따옴표나 큰 따옴표를 이용해서 문자열을 만들 수 있습니다. 따옴표 세 개를 쓰면 여러 줄의 문자열도 저장할 수 있습니다. 문자열에 따옴표를 넣고 싶은 경우 다른 종류의 따옴표로 감싸거나 이스케이프 문자를 이용하면 됩니다. 

>>> a = '135'
>>> b = 'bac'
>>> min(a)		// Returns lowest alphabetical character
'1'
>>> max(a+b)		// Returns highest alphabetical character
'c'
>>> c = 'Hello World !'
>>> c.split(sep=' ')	// Splits given value by 'sep' and returns it in list form
['Hello', 'World', '!']
>>> d = ['Hello', 'World', '!']
>>> d = '_'.join(d)		// Opposite function of split. It joins a separator between elements
>>> d
'Hello_World_!'

③ 튜플 자료형 (tuple) : 리스트와 유사하지만 수정할 수 없는 자료형입니다. 리스트가 변수라면 튜플은 상수인 셈입니다. 튜플은 인덱싱과 슬라이싱을 통해 자료에 접근할 수는 있지만, 수정과 삭제는 불가능합니다. 

만약 시도한다면, 아래와 같은 에러가 발생할 것입니다.

TypeError: 'tuple' object does not suppor item assignment

만약 수정해야 한다면 리스트의 형태로 바꾸었다가 다시 튜플로 바꿔줘야 합니다.

 

3. 불 자료형 (Boolean Data Type)

불 자료형에는 두 가지 종류, TrueFalse 밖에 없습니다. 변수에 직접 True 또는 False 값을 넣어줄 수도 있지만 파이썬은 다른 자료형의 값들도 True나 False로 인식합니다. 보통 변수가 비어있으면 False로, 어떤 값이 들어 있으면 True를 반환합니다. 

 

4. 딕셔너리 자료형 (Dictionary Data Type)

딕셔너리 자료형은 키와 값이 매핑된 형태로 정보를 저장합니다. 키에는 변하지 않는 값을, 값에는 변할 수 있는 값을 넣을 수 있습니다. 

ex) 튜플 -> 키, 값 둘 다 사용 가능. 리스트 -> 키로는 사용 불가능.

만약 키가 중복된다면 마지막의 대응쌍 하나만 인식됩니다. 

 

-딕셔너리와 관련된 메소드

>>> mydict = {'name':'Gildong', 'age':22, 'gender':'male'}
>>> mydict.keys()		// Returns only the keys from dictionary in "dict_keys" form
dict_keys(['name', 'age', 'gender'])
>>> mydict.values()		// Returns only the values from dictionary in "dict_values" form
dict_values(['Gildong', 22, 'male'])
>>> mydict.items()		// Returns pairs of key and value by tuple in "dict_items" form
dict_items([('name', 'Gildong'), ('age', 22), ('gender', 'male')])
>>> mydict.get('age')		// Uses key to return the matching value
22
>>> mydict.clear()		// Resets the dictionary
>>> mydict
{}

 

5. 집합 자료형 (Set Data Type)

집합을 만들 때는 set() 키워드와 리스트/문자열을 사용하거나 중괄호 {}를 사용할 수 있습니다. 집합은 중복이 허용되지 않고, 순서가 없기 때문에 인덱싱과 슬라이싱을 하기 위해서는 리스트나 순차 자료형으로 변환해줘야 합니다. 

>>> a = set([1, 2, 3])
>>> b = set('Hello Set?')
>>> a
{1, 2, 3}
>>> b
{'h', 'e', 'S', '?', 't', 'l', 'o'}
>>> c = {'Say', 'hi2', 'set'}
>>> c
{'set', 'Say', 'hi2'}

교집합, 합집합, 차집합을 모두 파이썬에서 구현할 수 있습니다. 

>>> set_1 = set([1, 2, 3, 4])
>>> set_2 = set([4, 5, 6, 7])
>>> set_1 & set_2		// = set_1.intersection(set_2)
{4}
>>> set_1 | set_2		// = set_1.union(set_2)
{1, 2, 3, 4, 5, 6, 7}
>>> set_1 - set_2		// = set_1.difference(set_2)
{1, 2, 3}

-집합 자료형과 관련된 메소드 (순서가 없기 때문에 집합을 확인할 때 요소들의 순서가 바뀌어도 자료 자체는 바뀐 것이 아닙니다.)

>>> set_3 = set([1, 2, 3])
>>> set_3.add(4)		// Add a value to set
>>> set_3
{1, 2, 3, 4}
>>> set_3.update([5, 6])		// Add multiple values to set
>>> set_3
{5, 4, 2, 1, 3, 6}
>>> set_3.remove(3)			// Delete a value in set
>>> set_3
{1, 6, 2, 4, 5}

 

 

※ 위의 예시들로부터 확인할 수 있듯이, 파이썬은 C, C++, JAVA와 달리 변수 선언을 할 때 변수의 타입을 명시해주지 않아도 됩니다. 이는 파이썬이 컴파일할 때 자료형이 결정되는 정적타입 언어가 아닌, 런타임 시 자료형이 정해지는 동적타입 언어이기 때문입니다.

 

 

 

 

728x90
반응형