일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- github
- 인공지능
- 데이터분석
- AIVLE
- Ai
- 파이썬
- KT AIVLE
- LG Aimers
- 알고리즘
- 정처기 실기
- 자바
- Java
- AI 윤리
- numpy
- 데이터
- pandas
- 백준
- Python
- ai 전문가 과정
- git
- 모각코
- list
- KT
- 데이터과학
- 클래스
- 코딩
- AI학습
- 코딩테스트
- 정처기
- dictionary
Archives
- Today
- Total
무향향수
[python] 효율적인 코드 작성 방법 본문
1. enumerate() 사용하기
- enumerate를 사용하면 반복문에서 인덱스와 값을 쉽게 사용할 수 있다.
a = [i for i in range(4)]
# 변수를 enumerate()로 감싸 사용한다.
for idx, num in enumerate(a):
if num > 2:
a[idx] = 0
# 배열 a에 있는 값이 2보다 작으면 0으로 변경하는 코드
2. for문 대신에 list comprehension 사용하기
# [expression for item in iterable if condition] 형식으로 작성한다.
data = [i for i in range(10) if i % 2 = 0]
# 짝수만 data 배열에 저장된다.
3. Generator comprehension 사용하기
generator 객체를 생성하며 lazy 방식을 사용하여 메모리를 효율적으로 사용할 수 있다.
⚠️ 그러나 한 번 생성하고 호출하면 끝이다. 즉 다시 사용할 수 없다(일회용)..
# (expression for item in iterable if condition) 형식으로 작성한다.
num = (i for i in range(10) if i % 2 == 0)
# 단순히 () 괄호만 변경해주면 된다.
for idx, num in enumerate(num):
print(idx, num)
# 위의 for문을 실행하고, 동일한 for문을 실행하면 아무런 값도 출력되지 않는다. (일회용)
4. f-string 사용하기
# f'{변수명} ~ ... {변수명}' 형태로 사용한다.
a = '안녕'
b = '두'
print(f'{a}은 {b} 글자이다.')
# 안녕은 두 글자이다. 라는 문장이 출력된다.
5. if i in list 형식 사용하기
foods = ['회', '망고', '귤', '과자']
ans = '귤'
if ans in foods:
print(ans)
# 조건이 충족되면 결과가 출력된다.
6. join()으로 문자열 합치기
encryption = ['파이썬', ' 기초부터 ', '공부하기']
ans = "".join(encryption)
print(ans)
# 파이썬 기초부터 공부하기 문장이 출력된다.
# join을 사용하면 for문을 사용하지 않아 코드가 간결해진다.
7. collections.Counter로 문자 수 세기
from collections import Counter
test = [1, 1, 1, 2, 2, 3]
counter = Counter(test)
print(counter)
print(counter[1]) # 1의 개수인 3이 출력된다.
from collections import Counter
test = [1, 1, 1, 2, 2, 3]
counter = Counter(test)
most_common = counter.most_common(2) # 가장 많은 1과 2가 저장된다.
print(most_common)
print(most_common[0]) # 1과 1의 개수가 출력된다.
print(most_common[0][1]) # 1의 개수가 출력된다.
'코딩테스트 > Python' 카테고리의 다른 글
[알고리즘] 시간 복잡도 (Time Complexity) (1) | 2024.12.02 |
---|---|
[Python] 백준 10102번 (0) | 2023.07.26 |