-
Python 04일차 수업 정리_삼항연산자, 컬렉션(list, tuple, set, dict)Python 2024. 1. 29. 23:26
- 03일차 복습
- 삼항 연산자
- 컬렉션
- list
- tuple
- set
- dict
- 컬렉션 차이점 정리
- 비어있는 컬렉션 만들기
- 03일차 복습
input() 입력함수는 사용자(키보드)로부터 입력받기 위한 함수 -> 컴퓨터한테 보내주는 것
** 무조건 str 자료형으로 저장된다. 다른 자료형으로 입력하고자 하면 형변환 필수
ex) int(input(" "))
이스케이프 문자는 문자열 안에서 특수한 기능 문자.
\" \' \\ \n \t (tap키) " ' \ 줄바꿈 들여쓰기 형식을 갖춘 문자열
% 연산자 int float str bool "%d" %d %f %s %s %값 %10 %3.14 %"안녕" %True str.format() f-string() "{} {}".format(값1, 값2) f"{값, 변수명}" 번호를 부여, 형식 지정, 순서 지정 가능 자동으로 변수에 저장된 값을 가져옴 연산자의 우선순위
최우선 연산자 [], () 단항 연산자 + (양수), - (음수) 산술 연산자 +, -, *, /, %(나머지 연산자), //(몫 연산자), ** 쉬프트 연산자 >>, << (이해못함, 자주 안쓴데) 관계 연산자 >, <, <=, >=, ==, != (질문, ~~?) 논리 연산자 삼항 연산자 대입 연산자 = 복합관계 대입 연산자 +=, -=, *= ( n += 5 => n = n + 5)
- 삼항 연산자
[ 참일 시 실행 ] if [ 조건문 ] else [ 거짓 시 실행 ]
조건문 자리에는 논리, 관계 연산자 사용 가능
삼항 연산자는 조건문부터 실행, 조건문을 읽고 참일 시 앞, 거짓일 시 뒤를 출력
<실습> # 정수 2개 입력받고, 관계 and 삼항 연산자를 이용하여 두 수의 차이를 절대값으로 출력
# 쓰앵님 답 num1 = int(input("첫번째 정수 입력 : ")) num2 = int(input("두번째 정수 입력 : ")) print(num1 > num2 ) result = num1 - num2 if num1 > num2 else num2 - num1 print(f"{num1}과 {num2}의 차이는 {result}입니다.")
- 컬렉션
컬렉션이란 여러개의 값을 하나 안에 넣어 묶어 사용 가능한 자료형.
list 리스트 tuple 튜플 set 세트 dict 딕셔너리 [ ] ( ) { } {key:value}
- list
[ 1, "문자열", True ]
시퀀스 자료형 (인덱스 번호 사용 가능)
대괄호로 묶고 , 콤마로 값을 구분
중복값/모든 자료형 허용, 추가/수정/삭제 언제나 가능 (추후 method 공부할 때 더 자세히)
리스트의 in 연산자, not in 연산자
# (얘네도 물어봐주는 거임 관계 연산자처럼) print( 1 in li2) # 1 이 li2 안에 있니???? print( False in li2) # False 라는게 li2 안에 있니???? print(100 not in li2) # 100 이 li2 안에 없니???
논리로 대답
2차원 리스트 (리스트 안에 리스트)
# 0 1 2 3 4 시퀀스자료형 인덱스 번호 li3 = [1, 2, 3, ['1', '2', '3'], [4]] # 0 1 2 print(li3[3], type(li3[3])) print(li3[3][1], type(li3[3][1]))
- tuple
( 1, "문자열", True )
시퀀스 자료형 (인덱스 번호 사용 가능)
소괄호로 묶고 , 콤마로 값을 구분
중복값/모든 자료형 허용, 생성 후 추가/수정/삭제 불가능
=>읽기 전용 리스트 라고도 불림
튜플의 특징 - 패킹과 언패킹
# Tuple Packing(패킹) : 여러가지 데이터를 튜플로 묶는 것을 튜플 패킹 tu2 = 1, 2, 3 print(tu2, type(tu2)) tu3 = (4,) #튜플의 요소가 1개 일때는 반드시 뒤에 , 표시 print(tu3, type(tu3)) # Tuple unPacking(언패킹) : 튜플의 각 요소를 여러개의 변수에 할당 num1, num2, num3 = tu2 print(num1, type(num1)) print(num2, type(num2)) print(num3, type(num3))
튜플의 in 연산자, not in 연산자
# in 연산자, not in 연산자 # 찾을 값 in 리스트, 튜플... print(1 in tu2) print("안" in "안녕하세요")
list와 같음, 논리로 대답
튜플의 시퀀스 연산자 +, *
print(tu1 + tu3, type(tu1 +tu3)) print((1,2,3) + (4,5), type((1,2,3) + (4,5))) print(tu2 * 2) print("안녕"*3)
튜플의 len()
파이썬에서 유용하게 쓰이는 함수**
해당 요소의 길이/갯수를 알려주는 함수
li1 = [1, 2, 3] tu4 = (4, 5, 6, 7) print(len(li1)) print(len(tu4))
3
4
- set
{ 1, "2", 0.1 }
비시퀀스 자료형 (인덱스 번호 x)
중괄호로 묶고 , 콤마로 값을 구분
중복값/순서 X, 모든 자료형 허용
=>(list의)중복값을 없앨 때 많이 사용
se1 = set(li1) # set() : set로 형변환하는 함수 print(se1, type(se1)) #리스트를 세트로 형변환하면서 중복값 제거 li1 = list(se1) # 다시 리스트로 변형 가능// list() : 리스트로 형변환하는 함수 print(li1, type(li1)) tu1 = tuple(li1) #tuple() : 튜플로 형변환하는 함수 print(tu1, type(tu1))
- dict
{키1 : 값1, 키2 : 값2}
비시퀀스 자료형 (인덱스 번호 x)
중괄호로 묶고 / 딕셔너리명[key]로 value 값 조회 가능
중복값 key X / value O, 모든 자료형 허용
=>딕셔너리 안에는 모든 컬렉션 포함 가능
key 값과 value값을 각각 묶거나 한 세트씩 출력 가능
print(di2.keys(), type(di2.keys())) #key, 값만 묶어놓을 수 있음 print(di2.values(), type(di2.values())) #value, 값만 묶어놓을 수 있음 print(di2.items(), type(di2.items())) # key와 value를 한쌍의 튜플로 묶어버림 ==> 튜플이 두개나옴
- 컬렉션 정리
list 리스트 tuple 튜플 set 세트 dict 딕셔너리 ex [1, 2, 3, "문", True] (1, 1.2, "문", True) {1,3,2,"문", 0.1} {키1 : 값1, 키2 : 값2} 시퀀스 자료형/
인덱스 번호/
중복값O / O / O O / O / O X / X / X X / X / key X value O 추가/수정/삭제 O (언제나 가능) X (리스트와 반대) 기타 개개 특징 .list 안에 list
작성 및 추출 O.패킹, 언패킹
.값이 1개면 뒤에 , 필수
.읽기 전용 리스트.순서 X
.list, tuple로 형변환 O
.tuple, list와 다름
.리스트 중복값 제거할 때
많이 사용.모든 컬렉션 포함 가능 인덱싱을 이용하면 해당 값의 자료형을 "추출" 가능 -> 자료 타입 그대로 출력
슬라이싱을 이용하면 자르는 것이여서 타입별 출력 -> list, tuple
- 비어있는 컬렉션 만들기
list 리스트 tuple 튜플 set 세트 dict 딕셔너리 li1 = []
li2 = list()tu1 = ()
tu2 = tuple()set1 = set() di1 = {}
di2 = dict()# 1. 리스트 => [] 이용하거나 list() 함수를 이용해서 비어있는 리스트 생성 가능 li1 = [] print(li1, type(li1)) print(bool(li1), type(bool(li1))) # 비어 있어서 False로 나옴 li2 = list() print(li2, type(li2)) # 2. 튜플 => () 이용하거나 tuple() 함수를 이용해서 비어있는 튜플 생성 가능 tu1 = () # 튜플은 안에 하나 넣을 떄 1, 이렇게 , 넣어줘야함 print(tu1, type(tu1)) print(bool(tu1), type(bool(tu1))) tu2 = tuple() print(tu2, type(tu2)) # 3. 세트 => 비어있는 세트는 {}를 이용해 만들 수 없다. set() 함수로만 생성 가능 set1 = set() print(set1, type(set1)) # 4. 딕셔너리 => {} 이용하거나 dict()를 이용해서 생성 가능 di1 = {} print(di1, type(di1)) print(bool(di1), type(bool(di1))) di2 = dict() print(di2, type(di2))
더보기[] <class 'list'>
False <class 'bool'>
[] <class 'list'>
() <class 'tuple'>
False <class 'bool'>
() <class 'tuple'>
set() <class 'set'>
{} <class 'dict'>
False <class 'bool'>
{} <class 'dict'>
2024.01.29
'Python' 카테고리의 다른 글
Python 06일차 수업 정리_while, for, range, 이중 for문, 기타제어문 (4) 2024.01.31 Python 05일차 수업 정리_제어문, 조건문(if, if ~ else, if elif else) (2) 2024.01.30 Python 03일차 수업 정리_입력함수, 이스케이프 문자, 형식을 갖춘 문자열(%연산자, str.fotmat(), f-string()), 산술/관계/논리/복합관계 대입 연산자 (2) 2024.01.26 Python 02일차 수업 정리_변수명, 기본 자료형, 형변환 함수, 시퀀스 자료형 (2) 2024.01.25 Python 01일차 수업 정리_파이썬 기본 문법, 출력함수 print(), 변수 (2) 2024.01.24