학습내용
세트는 정렬 순서가 없는 데이터의 집합을 나타낸다
city = {"서울", "대전", "대구", "부산", "광주"}
print(city)
#세트를 리스트로부터 작성하기
city = set(["서울", "대전", "대구", "부산", "광주"])
print(city)
# 출력 결과
{'광주', '대구', '서울', '대전', '부산'}
{'대구', '부산', '광주', '대전', '서울'}
Python
복사
빈세트 선언하기
city = set()
print(city)
Python
복사
빈 세트 선언하기 (단 { }만 지정하면 빈 딕셔너리가 되므로 주의)
세트의 특징
•
{ }을 이용해서 값을 지정
•
값은 갱신할 수 있지만 중복시킬 수는 없음
•
세트의 요소에 순서는 없음
세트의 요소 추가, 삭제
세트명.add(값) - 추가
세트명.remove(값) - 삭제
세트의 집합 연산
세트는 다음의 연산자를 사용해서 집합 연산을 할 수 있습니다.
연산자 | 이름 | 내용 |
| | 합집합 | 집합의 모든 요소를 구한다. |
& | 교집합 | 모든 집합에 공통하는 요소를 구한다. |
- | 차집합 | 어느 한쪽의 집합에 있고 다른 집합에 없는 것을 구한다. |
^ | 대칭차 | 어느 한쪽의 집합에만 있는 요소를 전부 구한다. (전체집합에서 교집합을 뺀 것과 같음) |
딕셔너리(Dictionary)
딕셔너리는 한글로 직역하면 사전입니다.
데이터에 인덱싱으로 접근할 수 있지만, 만약 찾고자 하는 자료의 인덱스를 모른다면 찾기 힘들게 됩니다. 이때 키워드로 데이터를 편리하게 찾기 위해 딕셔너리 자료형을 사용합니다.
딕셔너리의 특징
•
딕셔너리는 값들의 집합인 자료형이다.
•
딕셔너리에는 순서가 존재하지 않는다.
•
리스트는 "인덱스:값"형식으로 저장하나, 딕셔너리는 "key: value"형식으로 저장
•
딕셔너리는 중괄호 혹은 함수를 사용하여 선언 및 초기화할 수 있다.
중괄호: 딕셔너리 이름={key1:value1, key2:value2,...}
함수: 딕셔너리 이름=dict(key1=value1, key2=value2,...)
두 방법 모두 사용하지만, 중괄호를 이용한 초기화가 좀 더 직관적이기에 더욱 자주 된다
key와 value를 다룰 때 주의사항
1.
key는 value를 찾기 위한 유일한 값이기 때문에 중복으로 사용할 수 없습니다.
2.
key에 리스트는 사용할 수 없습니다.
3.
value에는 어떤 값이든 상관 없이 올 수 있습니다.
1) 원하는 키 값 출력하기
print(딕셔너리이름[key] = value)
2) 원하는 키 값 변경하기
딕셔너리이름[key] = value
3) 원하는 키 값 삽입하기
딕셔너리이름[key] = value
빈 딕셔너리 생성 후, 새로운 값 추가할 수 있습니다.
딕셔너리 이름 = { }
딕셔너리 이름[key] = value
원하는 키 값 삭제하기
del sample_dict['키값']
sample_dict.pop('’키값”, None)
재귀함수란 함수안에 다른 함수를 호출 할 수 있고, 자기 자신을 호출 할수도있다.
함수를 재귀적으로 호출 할수 있다.
*모든 재귀함수에는 종료조건이 반드시 있어야 됩니다.
ㄴ 그렇지 않으면 무한 루프 상태에 빠진다.
종료조건은 아래와 같이 두 가지 방법이 있습니다.
1.
조건에 맞을 때만 함수를 호출하도록 하는 방법
2.
우선 호출을 한 후, 조건을 벗어나면 리턴하는 방법
#반복문을 사용하지 않고 "대소고"를 4번 출력하기
def name(n) :
if n < 1 :
return
name(n-1)
print("대소고")
name(4)
Python
복사
위 코드는 대소고를 4번 출력 하는데 반복문을 사용하지 않으며 n 이 1보다 작으면 반환해 종료한다.
어려웠던 점
재귀함수를 사용할때 무한루프 상태에 빠져 어려움을 겪었다.
def name(n) :
if n < 1 :
print("종료")
name(n-1)
print("대소고")
name(4)
Python
복사
해결방법
반환하여 함수를 종료 하였다.
return 을 사용하면 함수가 반환된다
def name(n) :
if n < 1 :
print("종료")
return
name(n-1)
print("대소고")
name(4)
Python
복사