파이썬 자료형

파이썬 자료형 – 리스트

파이썬에는 여러 개의 값을 하나의 데이터 저장소에 담아서 관리 할 수 있는 리스트(List)라는 자료형이 있습니다. 이 리스트에는 여러개의 값을 하나의 변수에 담을 수 있기 때문에 거의 모든 코드에 사용된다고 할 수 있습니다.

예를 들어서 학생의 10개 과목에 대한 성적을 입력할 때에 국어,영어,수학 등 10여개의 과목을 각각 변수에 담지 않고 하나의 변수명을 선언하고 [99,98,89 …] 와 같이 차례로 성적을 저장하는 방식입니다. 이때 중요한 것이 있다면 저장의 순서입니다. 모든 학생의 과목이 일정한 순서대로 정렬되어야 정상적인 결과를 얻을 수 있습니다.

score_list = [99,98,89,78,80...] #각 과목의 점수를 하나의 변수에 저장

dummy_list = [99,98,89,'A',3.4] #다른 형의 자료를 동일한 리스트에 저장할 수 있음
print([type(n) for n in dummy_list])
결과 : [<class 'int'>, <class 'int'>, <class 'int'>, <class 'str'>, <class 'float'>]

len(dummy_list)
결과 : 5

또 대부분 경우는 하나의 리스트에 같은 자료형을 입력하지만 다른 자료형을 입력하는 것도 가능합니다. 배열에 선언된 값에 접근하기 위해서는 변수[index] 형태로 사용하면 됩니다. 중요한 것은 index는 0부터 시작된다는 것입니다.

배열의 크기를 알기 위해서는 len()이라는 내장함수를 사용해서 확인 할 수 있습니다.

리스트에서 꼭 알아야 할 중요한것 중에 하나는 슬라이싱(Slicing)의 개념입니다. 이것은 리스트에서 원하는 범위를 지정해서 사용할 수 있는 굉장히 편리하고 많이 사용하는 개념입니다.

dl = [0,1,2,3,4,5,6,7,8,9]
print(dl[0:3]) #[0, 1, 2]
print(dl[5:]) #[5, 6, 7, 8, 9]
print(dl[3:-1]) #[3, 4, 5, 6, 7, 8]

cl = 'hello world'
print(cl[0:5]) #hello

위의 예제에서 보다시피 리스트의 인덱스 값을 활용해서 해당 자료를 출력합니다.
알아두면 좋은 것은 이것이 리스트 배열에서만 사용하는 것이 아니라 문자 배열에서도 동일하게 사용할 수 있다는 것입니다. 다른 언어의 substring과 같은 개념입니다. 앞에 -(minus) 기호를 붙이면 마지막에서부터 카운트를 하기 때문에 이를 응용해서 다양한 활용이 가능합니다.

파이썬 자료형 – 딕셔너리

리스트와 함께 또 하나의 중요한 데이터 저장소는 딕셔너리(Dictionary)입니다.

딕셔너리는 키(Key), 값(Value)의 쌍으로 되어 있는 데이터 저장소입니다. Java에 익숙하신 분은 맵(Map)이라는 객체를 생각하시면 되겠습니다. 딕셔너리도 선언과 활용이 간단합니다. 해당 내용을 출력하기 위해서는 키(Key) 값을 입력하면 그에 해당하는 값(Value)가 출력되는 구조입니다.

score_dict = {'kor':98, 'eng':90, 'math':100, 'hist':93} #과목을 Key로 선언하고 성적을 Value로 정의
print(score_dict['kor']) #98

print(score_dict.keys()) #dict_keys(['kor', 'eng', 'math', 'hist'])
print(sorted(score_dict.keys())) #['eng', 'hist', 'kor', 'math']
print(score_dict.values()) #dict_values([98, 90, 100, 93])

이전에 리스트에서 성적을 입력할 때에 순서가 중요했다면 딕셔너리에서는 Key가 존재하기 때문에 순서는 중요하지 않습니다. 딕셔너리에서 하나 주의해야 할 것은 Key 가 중복되지 않도록 관리해야 한다는 것입니다.

딕셔너리는 Key 값을 추출한다거나 이를 정렬하는 기능들을 제공하기 때문에 이를 활용해서 다양한 데이터를 처리할 수 있습니다.

파이썬 자료형 – 튜플

튜플(Tuple)은 리스트와 유사하지만 차이가 있다면 내용을 바꿀 수 없다는 점에 큰 차이가 있습니다. tutple로 선언한 변수에 어떤 다른 값을 적용하고자 하면 ‘tuple’ object does not support item assignment 라는 에러 메세지를 표시합니다.

dummy_tuple = (99,88,87,94,92)
print(dummy_tuple[0]) #99

dummy_tuple[0] = 100 #TypeError: 'tuple' object does not support item assignment

파이썬 자료형 – 집합

집합(Set)도 리스트와 유사한 개념입니다. 그러나 각 요소간의 순서는 존재하지 않으며 각 요소간의 중복된 값을 허용하진 않습니다. 또 집합의 수학적인 연산이 가능하다는 특징이 있습니다.

dummy_set0 = set(list(score_dict.keys()))
dummy_set1 = set(['sci','kor'])

print(dummy_set0 | dummy_set1) # 합집합 {'math', 'eng', 'sci', 'kor', 'hist'}
print(dummy_set0 - dummy_set1) # 차집합 {'math', 'eng', 'hist'}
print(dummy_set0 & dummy_set1) # 교집합 {'kor'}

이전에 사용했던 score_dict의 키 값을 모아서 하나의 리스트로 만든 후에 이것을 다시 집합으로 선언합니다. 그리고 또 하나의 집합을 생성합니다. 그리고 이 집합을 활용해서 집합 연산을 수행해봅니다.

집합 연산은 합집합, 차집합, 교집합이 있습니다.
합집합은 ‘+’ 연산자를 사용하지 않고 ‘|’ 연산자를 사용합니다. 집합은 중복을 허용하지 않기 때문에 두 집합의 요소가 하나씩 존재하게됩니다.
차집합은 공통된 요소를 삭제합니다. 교집합은 공통된 요소만 추출합니다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 항목은 *(으)로 표시합니다