-----------------------------------------------------------------------------------------------------
1. 자료형 비교
자료형 | 리스트 | 튜플 | 딕셔너리 | 집합 |
생성 | a = [value1. values2,] | a = (value1, values2) 요소 하나 일 때 뒤에 ‘,’를 삽입해야 튜플로 인식 |
a = {key1:value1, key2:value2} | a = set(value) |
빈 값 생성 | a = [] | a = () | a = {} | a = set() b = set(a) |
표기 | 대괄호 [] | 괄호 () | 중괄호 {} | set() |
순서 유무 인덱스 가능 |
○ | ○ | x | x |
중복 허용 | ○ | ○ | Key 중복 불가 | x |
변경 가능 | ○ | X | ○ | ○ |
조작 | ||||
요수 추가 | 변수명.append(value) #변수명.extend (iterable) - 리스트의 모든 요소를 다른 리스트에 추가 #변수명.insert (index,object) - 정의 된 색인에 항목을 삽입 |
불가 | 변수명[‘key’] = value # 새로운 key #value에 [] 리스트도 추가 가능 |
1개 추가: 변수명.add(value) 여러 개 : 변수명.update([]) #[]리스트로 업데이트 |
요소 수정 | 변수명[value] = value2 | 불가 | 변수명[‘key’] = value #이미 존재하는 key |
|
요소 제거 | 1. 변수명.remove (value) - 목록에서 항목을 제거 2. 변수명.pop (index) - 주어진 인덱스에서 요소를 제거하고 반환 3. 변수명.clear () -목록에서 모든 항목을 제거합니다 |
불가 | 1. del 변수명[key] #keu, value 쌍 삭제 2. 변수명.clear() -전체 쌍 삭제 |
변수명.remove(value) |
주요 관련 함수 | 7. 변수명.index (value) -첫 번째 일치 항목의 인덱스를 반환 8. 변수명.count (value) -인수로 전달 된 항목 수의 개수를 반환합니다. 9. 변수명.sort () -목록의 항목을 오름차순으로 정렬(key-기준 설정)] 10. 변수명.reverse () -목록의 항목 순서를 반대 11. 변수명.copy () - 목록의 얕은 사본을 반환 |
1. 변수명[index] -인덱스에 해당하는 value 반환 2. 변수명[:] -슬라이싱 #파이썬은 0부터 시작 #a[2:] 라고 했을 때 2에 해당하는 값은 빼고 3부터 포함된 리스트 반환 3. 연산 t3 = t1 + t2 -두 튜플을 합쳐 새로운 튜플 생성 r3 = t1*n -튜플을 n번 반복한 튜플 생성 3. len(변수명) -튜플 길이 반환 #리스트와 동일 |
1. 변수명.keys() 변수명.values() 각각 key와 value만 모아서 변수명.keys([key1, key2]) 변수명.values([value1, value2]) 객체로 반환, list로 변환하려면 list(변수명.keys/values())사용 2.변수명.items() -key, value 쌍으로 반환 3.변수명.get(key) -key에 대응되는 value 반환 # 변수명(key)와의 차이, 해당되는 key가 존재하지 않는 경우 get은 none을 반환하고, 변수명(key)는 오류를 발생 4. key in 변수명 -해당 딕셔너리에 해당 키가 있는지 확인 true, false로 반환 |
1. 교집합 s1 & s2 s1 intersection(s2) s2 intersection(s1) 2. 합집합 s1 | s2 #중복 값은 하나씩만 남김 3. 차집합 s1 – s2 s2 – s1 s1.difference(s2) s2.difference(s2) |
2. 불 자료형
● 참, 거짓으로 반환하는 논리자료형
값 | 설명 | True, False |
"abc" | 값이 있는 문자열 | TRUE |
[1, 2] | 값이 있는 리스트 | TRUE |
1 | 숫자 1 | TRUE |
-1 | 숫자 -1 | TRUE |
"" | 빈 문자열 | FALSE |
" " | 공백만 있는 문자열 | FALSE |
[] | 빈 리스트 | FALSE |
0 | 숫자 0 | FALSE |
{} | 비어있는 딕셔너리 | FALSE |
() | 비어있는 튜플 | FALSE |
#숫자는 0이 아닌 모든 숫자는 True 이고, 0만 False
#비어있는 리스트, 튜플, 딕셔너리, 문자열은 모두 False
-활용 예시
>>> a = [1, 2, 3, 4] >>> while a: ... print(a.pop()) ... 4 3 2 1 |
1. a가 참인 경우에 a.pop()을 계속 실행하여 출력하라는 의미 2. a.pop() 함수는 리스트 a의 마지막 요소를 끄집어내는 함수이므로 리스트 안에 요소가 존재하는 한(a가 참인 동안) 마지막 요소를 계속해서 끄집어냄 3. 결국 더 이상 끄집어낼 것이 없으면 a가 빈 리스트([])가 되어 거짓이 됨 4. 따라서 while문에서 조건문이 거짓이 되므로 while문을 빠져나간다.[파이썬 프로그래밍에서 매우 자주 사용하는 기법] |
3. 변수
● a = object // a라는 변수에 object란 정보를 담는다.로 개념으로 이해.
● 리스트에서 복사 개념
a = [1,2,3] b = a a is b # a와 b가 가리키는 객체는 동일한가? True |
b는 a라는 객체를 담은 것으로 a의 id 값과 같은 id 값을 가진다. 따라서 a의 요소를 바꾸면 b의 요소도 변함 |
a = [1,2,3] b = a[:] a is b # a와 b가 가리키는 객체는 동일한가? False |
b는 a에 속해 있는 요소로 가져다 만든 리스트로 요소는 같지만, 다른 id 값을 가진다. 따라서 a의 요소를 바꾸어도 b의 요소는 변하지 않음 #copy 모듈/리스트 내장 copy 함수를 사용해도 같은 결과 |
3. 연습문제
● dictionary ●
(1)
아래의 표에서, 아이스크림 이름을 키값으로, (가격, 재고) 리스트를 딕셔너리의 값으로 저장하기.
딕셔너리의 이름은 inventory로 한다.
이름 | 가격 | 재고 |
메로나 | 300 | 20 |
비비빅 | 400 | 3 |
죠스바 | 250 | 100 |
(2)
(1)의 inventory 딕셔너리에서 메로나의 가격을 실행예시와 같이 화면에 출력하기
실행 예시:
300 원
(3)
(1)의 inventory 딕셔너리에서 비비빅의 재고를 실행 예시와 같이 화면에 출력하기
실행 예시:
20 개
(4)
(1)의 inventory 딕셔너리에 아래 데이터를 추가하라.
이름 | 가격 | 재고 |
월드콘 | 500 | 7 |
실행 예시:
>> print(inventory)
{'메로나': [300, 20], '비비빅': [400, 3], '죠스바': [250, 100], '월드콘': [500, 7]}
(5)
다음의 딕셔너리에서 key 값으로만 구성된 리스트와 value 값으로만 구성된 리스트를 각각 생성하기
icecream = {'탱크보이': 1200, '폴라포': 1200, '빵빠레': 1800, '월드콘': 1500, '메로나': 1000}
(6)
다음의 icecream 딕셔너리에서 아이스크림 판매 금액의 총합을 출력하기.
icecream = {'탱크보이': 1200, '폴라포': 1200, '빵빠레': 1800, '월드콘': 1500, '메로나': 1000}
실행 예시:
6700 원
(7)
아래의 new_product 딕셔너리를 icecream 딕셔너리에 추가하라.
new_product = {'팥빙수':2700, '아맛나':1000}
실행 예시:
>> print(icecream)
{'탱크보이': 1200, '폴라포': 1200, '빵빠레': 1800, '월드콘': 1500, '메로나': 1000, '콜라': 700, '사이다': 700}
&&&&&&&&&&&&&&&&&
\(^.^)/\(^.^)/\(^.^)/
고생 많으셨습니다.
&&&&&&&&&&&&&&&&&&
'Python > Basic' 카테고리의 다른 글
03. dotenv로 환경 변수 관리하기 (0) | 2024.04.28 |
---|---|
02. 가상 환경 (0) | 2024.04.27 |