파이썬으로 배우는 수학적 프로그래밍(알란 M.스테이블리 지음)을 참고했습니다.
파이썬의 기초 내용에 좀 더 보태 정리한 내용이니 오류 지적은 달게 받겠습니다.
집합(set)
집합 자료형의 특징 1. 중복을 허용하지 않는다. 2. 순서가 없다(Unrordered) |
집합은 다양한 것들이 순서 없이 모여 있는 모임
EX) 전화번호의 모든 번호, 이름에서 차례로 된 문자들
다중집합(multi-set)
다중 집합은 집합과 비슷하지만, 집합 내 모든 원소가 다를 필요가 없다. 즉 어떤 원소가 하나 이상일 수 있다.
하지만 순서가 없다는 것은 집합과 공통점이다.
온도를 관찰한 데이터 모임이 다중집합이라고 할 수 있다.
1980년도의 평균온도와 1981년도의 평균 온도가 같을 수 있다.
대신 관측 순서가 중요하기 때문에 데이터(지구 온도 평균변화)를 시퀀스라고 간주해야 한다.
시퀀스(sequence) : 순서가 있는 문자
파이썬에서 문자열, 리스트, 튜플 같은 자료형을 시퀀스(sequence) 자료형이라고 부른다. 여기에 포함된 각 객체는 순서를 가지고 인덱스를 사용하여 참조할 수 있다. |
a = "I love Python"이라고 하면 a의 객체 타입은 str형이다.
a내 원소들은 순서를 가지고, 인덱스를 이용해 참조가 가능하다.
파이썬을 인터프리터(interpreted)형 언어라고 한 번쯤은 들어봤을 것이다.
프로그램을 한 줄 한 줄씩 읽어 하나하나 해석해가는 방식을 뜻한다. 자세한 내용은 생략하고,
for 원소 in 시퀀스: |
위 for문 명령어는 파이썬에서 한 번에 한 원소씩 시퀀스의 모든 원소에 명령을 실행하는 방법이다.
그러면 파일도 시퀀스일까? 아래 코드를 살펴보자.
좀 더 이해를 요구하는 문장이니 차근차근 곱씹어서 보도록 하자.
file = open("observations")
for line in file:
파이썬은 '파일(file)'을 줄(line)의 시퀀스라고 인식한다.
파일의 각 줄은 문자의 시퀀스(sequence)이다.
따라서 파일은 시퀀스의 시퀀스라고 말할 수 있다.
순서쌍(ordered pair)
무엇이 우선이고 다음인지를 알 수 있도록 두 개의 원소가 '순서대로' 정렬된 것이 순서쌍(ordered pair)이다.
이때, 두 개의 원소가 서로 다른 것을 의미한다.
만약, 위와 같이 'example.txt'라는 파일이 있다.
example 파일을 읽으면 각 줄(line) 하나에는 1개의 이름과 1개의 이메일 주소가 있다.
example.txt는 '순서쌍(ordered pair)'의 집합(set)이라고 볼 수 있다
즉, (이름, 이메일)이라는 두 개의 원소가 '순서대로' 정렬되어 있다.
이러한 순서쌍이 여러 개 모여서 순서쌍의 집합(set)을 만들고 있다.
순서쌍의 집합을 일컬어 수학 용어로 관계(relation)라고 한다.
이러한 관계중에는 매핑(mapping)이라는 것이 있다.
매핑(mapping)은 첫 번째 원소가 모두 다른 순서쌍의 집합을 의미한다.
다만, 어떤 사람이 이메일을 2개를 적은 경우를 생각해 볼 수 있다.
이 경우에는 데이터가 관계(relation)이기는 하지만, 매핑(mapping)은 아니다.
'프로그래밍 > 파이썬' 카테고리의 다른 글
[파이썬] 일등 함수(first-class citizen) 이란? (2) | 2017.05.19 |
---|---|
[파이썬] 리스트 컴프리헨션(list comprehension)의 이해 (1) | 2017.05.05 |
[파이썬] 행렬(matrix)과 리스트 컴프리헨션(list comprehension) 이해하기 (0) | 2017.05.05 |
[파이썬] 문자열 압축하기 (2) | 2017.02.26 |
[파이썬] 리스트(list) append 메서드 사용시 NoneType이 출력되는 경우 (2) | 2017.02.18 |