실수형
- 실수형 소수점
소수부가 0이거나, 정수부가 0인 소수는 0을 생략 가능함
a = 5.
print(a) # 5.0
b = -.7
print(b) # -0.7
- 지수 표현 방법
유효숫자e지수 = 유효숫자 * 10^지수
a = 1e9
print(a) # 1000000000.0
b = 2752e-3
print(b) # 2.752
- 실수 계산 방법
컴퓨터는 실수를 정확하게 표현하지 못한다.
a = 0.3 + 0.6
print(a) # 0.8999999999999999
해결방안 : round()를 이용하여 반올림 처리한다. (일반적인 코딩 테스트는 소수점 다섯 번째 자리에서 반올림)
round(반올림할 수, 반올림할 위치-1)
-> 0부터 시작하므로 반올림할 위치도 -1해줌
a = 0.3 + 0.6
a = round(a, 4) # 5번째 소수점에서 반올림
print(a) # 0.9
빈 리스트 만들기
- a = [] 사용
- a = list() 사용
리스트 컴프리헨션
반복되거나 특정 조건을 만족하는 리스트로 초기화하는 방법
- 조건에 만족하는 수만 포함하는 리스트
# 홀수만 포함하는 리스트
array = [i for i in range(21) if i % 2 == 1]
print(array) # [1, 3, 5, 7, 9, 11, 13, 15, 17, 19]
- 수의 제곱 값을 포함하는 리스트
# 수의 제곱 값을 포함하는 리스트
array2 = [i * i for i in range(1, 10)]
- 2차원 리스트 초기화
x = 3
y = 4
array3 = [[0] * y for _ in range(x)] # y개의 0을 가진 리스트를 x개 가지는 리스트
print(array3) # [[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]]
-> 2차원 리스트는 반드시 컴프리핸션을 통하여 초기화 해야함
# [error] 2차원 리스트 초기화 시 컴프리핸션을 사용하지 않는 경우
x = 3
y = 4
array3_1 = [[0] * y] * x
array3_1[1][1] = 5 # [1][1]의 요소를 바꾸려고 함
print(array3_1) # [[0, 5, 0, 0], [0, 5, 0, 0], [0, 5, 0, 0]]
하나의 내부 리스트의 요소 값을 바꾸고자 하였으나, 얕은 복사로 인해 모두 동일한 객체를 가르켜 모든 내부 리스트가 변환됨
리스트 관련 기타 메소드
- 변수명.append()
: 리스트의 마지막에 원소를 하나 삽일할 때 사용
- 변수명.sort()
: 오름차순으로 데이터 정렬
- 변수명.sort(reverse = True)
: 내림차순으로 데이터 정렬
- 변수명.reverse()
: 원소의 순서를 뒤집어 놓음
- 변수명.insert(삽입 위치 인덱스, 삽입할 값)
: 특정 위치에 값을 삽입
- 변수명.count(값)
: 리스트가 특정 값을 가지는 개수를 출력
- 변수명.remove(값)
: 특정 값을 가지는 원소를 제거 (여러 개라면 하나만 제거)
- 특정 원소 제거하기
data_list = [1, 2, 3, 3, 4, 5, 5, 5]
remove_set = {3, 5}
data_list = [i for i in data_list if i not in remove_set]
print(data_list)
- 큰따옴표, 따옴표 표기 : \" or \'
튜플은 소괄호()를 사용한다.
튜플은 한 번 선언한 값에 대한 변경이 불가능하다.
변경되어서는 안되는 값이 변경되는지 체크하는 용도
리스트에 비해 상대적으로 공간 효율적
다익스트라 최단 경로 알고리즘 등에 사용됨
a = (4, 5, 1, 3)
key-value 쌍으로 이루어짐
순서가 없음
파이썬 딕셔너리 자료형은 내부적으로 해시 테이블을 가지고 있어 데이터 검색 및 수정이 O(1) 시간에 처리되어 리스트에 비해 빠르게 동작한다.
- 딕셔너리 요소 생성
data = {}
data['사과'] = 'Apple'
data['바나나'] = 'Banana'
data['자동차'] = 'Car'
print(data) # {'사과': 'Apple', '바나나': 'Banana', '자동차': 'Car'}
- 탐색
'요소' in 사전
if '사과' in data:
print('True')
딕셔너리 자료형 관련 함수
- 딕셔너리.keys()
: 딕셔너리의 키 데이터만 뽑아서 리스트로 만듦
- 딕셔너리.value()
: 딕셔너리의 값 데이터만 뽑아서 리스트로 만듦
key_list = data.keys()
value_list = data.values()
print(key_list) # dict_keys(['사과', '바나나', '자동차'])
print(value_list) # dict_values(['Apple', 'Banana', 'Car'])
for i in key_list:
print(i) # 키 값이 하나씩 출력
중복을 허용하지 않음
순서가 없음
집합 초기화 방법
- set() 함수 사용
set1 = set([2,3,4,5,6,7,7,7,1,1])
print(set1) # {1, 2, 3, 4, 5, 6, 7}
- 중괄호 사용
set2 = {2,3,4,5,6,7,7,7,1,1}
print(set2) # {1, 2, 3, 4, 5, 6, 7}
집합 자료형 연산
- 집합1 | 집합2 : 합집합
- 집합1 & 집합2 : 교집합
- 집합1 - 집합2 : 차집합
print(set3 | set4) # {1, 2, 3, 4, 5, 6}
print(set3 & set4) # set()
print(set3 - set4) # {1, 3, 4}
- 집합.add(값) : 원소 추가
- 집합.update([값1, 값2]) : 여러 원소 추가
- 집합.remove(값) : 원소 제거
set5 = {1, 2, 3, 4, 5, 6, 7}
set5.add(8)
print(set5) # {1, 2, 3, 4, 5, 6, 7, 8}
set5.update([9, 10])
print(set5) # {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
set5.remove(7)
print(set5) # {1, 2, 3, 4, 5, 6, 8, 9, 10}
[Python] 파이썬 문법 (주요 라이브러리) (0) | 2021.08.20 |
---|---|
[Python] 파이썬 문법 (조건문, 입출력, 함수) (0) | 2021.08.19 |
[Python] 알파벳 자동 생성 방법(리스트, 딕셔너리 등) (0) | 2021.08.06 |
[Python] 리스트 생성 시 초기값 설정하기 (0) | 2021.02.01 |
[Python] print() 줄바꿈 제거하는 방법 (0) | 2020.07.14 |