일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- thymeleaf
- python
- 해시
- TypeORM
- OpenCV
- nestjs auth
- Spring
- nestJS
- 구조체배열
- @Component
- 파이썬
- C언어
- 컴포넌트스캔
- 카카오 알고리즘
- 코테
- 시스템호출
- Nodejs
- AWS
- nestjs typeorm
- git
- C++
- 카카오
- 스프링
- 코딩테스트
- 알고리즘
- 가상면접사례로배우는대규모시스템설계기초
- 카카오 코테
- 프로그래머스
- @Autowired
- spring boot
Archives
- Today
- Total
공부 기록장 💻
[Python] 자료형 (수 자료형, 리스트 자료형) + 수행 시간 측정 본문
수행 시간 측정
import time
start\_time = time.time() # 측정 시작
# 프로그램
end\_time = time.time()
print('time: ', end\_time-start\_time) # 수행 시간 출력
파이썬 자료형
- 리스트: C++의 벡터, Java의 ArrayList
- 정수형, 실수형
- 문자열
- 튜플
- 사전
수 자료형
지수 표현 방식
- 1e9의 경우 10의 9제곱(1,000,000,000)
- 지수 표현 방식은 임의의 큰 수를 표현하기 위해 자주 사용됨
- 최단 경로 알고리즘에선 도달할 수 없는 노드에 대하여 최단 거리를 무한(INF)로 설정
- 이 때 가능한 최댓값이 10억 미만인 경우 무한(INF)의 값으로 1e9 이용 가능
# 1,000,000,000의 지수 표현 방식
a = 1e9
print(a) # 1000000000.0 출력
# 752.75
a = 75.275e1
print(a)
# 3.954
a = 3954e-3
print(a)
실수형
- 컴퓨터 시스템이 정확한 결과값으로 도출하기 어려움
round(숫자, 반올림 자릿수)
함수 사용
round(123.456, 2) # 123.46 츨략
# 소수부가 0일 때 0을 생략
a = 5.
print(a) # 5.0 출력
print(int(1e9))
# 정수부가 0일 때 0을 생략
a = -.7
print(a) # -0.7 출력
리스트 자료형
- 리스트 : 여러 유사한 성질의 데이터를 연속적으로 담아 처리하기 위해 사용하는 자료형
- C나 자바에서의 배열의 기능 및 연결 리스트와 유사한 기능
- C++ STL의 vector와 기능적으로 유사
- 리스트 대신 배열, 테이블이라고도 부름
리스트 초기화
[1,2,3]
- 빈 리스트 선언 :
a = list()
,a = []
- 원소 접근: 인덱스 값 [0], [1] 사용
# 크기가 N이고 모든 값이 0인 1차원 리스트 초기화
n = 10
a = [0] * n
print(a)
리스트 인덱싱
- 인덱싱(indexing) : 인덱스 값을 입력하여 리스트의 특정한 원소에 접근하는 것
- 음의 정수: 거꾸로 탐색
a = [1,2,3,4,5,6,7,8,9]
# 뒤에서 첫번째 원소 출력
print(a[-1]) # 9 출력
# 뒤에서 세번쨰 원소 출력
print(a[-3]) # 7 출력
리스트 슬라이싱
- 슬라이싱(slicing) : 리스트에서 연속적인 위치를 갖는 원소들을 가져올 때 이용
- 리스트의 일부분만 추출
- 대괄호 안에 콜론(:) 넣어 시작, 끝 인덱스 설정
- 끝 인덱스는 실제 인덱스보다 1 크게 설정
a = [1,2,3,4,5,6,7,8,9]
# 두번째부터 네번째 원소까지 출력
print(a[1:4]) # [2,3,4] 출력
리스트 컴프리헨션
- 리스트를 초기화하는 방법 중 하나
- 대괄호 안에 조건문, 반복문을 적용하여 리스트 초기화
- 0부터 9까지의 수를 포함하는 리스트
array = [i for i in range(10)]
print(array) # [0,1,2, ... ,9] 출력
0부터 19까지의 수 중 홀수만 포함하는 리스트
a = [i for i in range(20) if i%2 == 1] print(a) # \[1,3,5, ... , 19\] 출력
1부터 9까지의 수들의 제곱 값을 포함하는 리스트
array = \[i\*i for i in range(1, 10)\]
print(array) # \[1, 4, 9, ... , 81\] 출력
2차원 리스트 - 리스트 컴프리헨션
- N X M 크기의 2차원 리스트를 한번에 초기화하는 경우에 유용
array = [[0] * M for _ in range(N)]
- 잘못된 예시 :
array = [[0]*m] *n]
- 전체 리스트 안에 포함된 각 리스트가 모두 같은 객체로 인식됨 (참조값을 복사하게 됨)
- 전체 리스트 안에 포함된 각 리스트가 모두 같은 객체로 인식됨 (참조값을 복사하게 됨)
리스트 관련 메서드
함수명 | 사용법 | 설명 | 시간복잡도 |
---|---|---|---|
append() | 리스트.append(원소) | 리스트에 원소 삽입 | O(1) |
sort() | 리스트.sort(), 리스트.sort(reverse=True) | 오름차순(기본), 내림차순 정렬 | O(NlogN) |
reverse() | 리스트.reverse() | 리스트의 원소 순서를 뒤바꿈 | O(N) |
insert() | 리스트.insert(삽입할 위치 인덱스, 삽입할 값) | 특정 인덱스에 원소 삽입 | O(N) |
count() | 리스트.count(특정 값) | 리스트에서 특정 값을 가지는 데이터의 개수 셀 때 | O(N) |
remove() | 리스트.remove(특정값) | 특정 값을 갖는 원소를 제거하는데, 여러개면 하나만 제거 | O(N) |
리스트에서 특정 값을 가지는 원소 모두 제거하기
a = [1,2,3,4,5,5,5]
remove_set = {3,5} # 집합 자료형
# remove_list에 포함되지 않은 값만을 저장
result = [i for i in a if i not in remove_set]
print(result)
728x90
반응형
'# Language & Tools > Python' 카테고리의 다른 글
[Python] Python for Data Analysis CH6 Data Loading and Export (Text Format, CSV, JSON) (0) | 2022.10.30 |
---|---|
[Python/Pandas] Python for Data Analysis CH5 Pandas (Series, DataFrame) (0) | 2022.10.21 |
[Python/Numpy] Python for Data Analysis CH4 Numpy (0) | 2022.10.21 |
[Python] Python for Data Analysis CH3 내장 자료구조, 함수, 파일 (1) | 2022.10.21 |
[Python] set 집합 자료형, 문자열 리스트 함수, sys.stdin.readline 입력받기 (0) | 2022.03.03 |
Comments