Development/Python
Python3 Tips
Data Scientist Note
2022. 1. 2. 15:50
Python 3 Tips
- Python 3 사용에 있어서 참고하면 좋을 tip을 여러 곳에서 취합하여 정리하였습니다.
1. venv 사용하기
- 프로젝트에서 참조하면 모듈의 버전 등의 차이로 프로젝트마다 각각 다른 virtual environment 를 활용해야 할 경우
# venv setup
python3 --version
python3 -m venv env
# active & install modules
source ./env/bin/active
pip install --upgrade pip
# ...
deactive
2. 내장 함수 enumerate() 사용하기 (range(len()) 지양)
data = [1, 2, -3, -4, 5]
for index, num in enumerate(data):
pass
3. 내장 함수 sorted() 와 lambda 사용하기
data = [
{"name": "Max", "age": 6},
{"name": "Lisa", "age": 20},
{"name": "Ben", "age": 9}
]
sorted_data = sorted(data, key=lambda x: x["age"])
4. Syntactic Sugar 사용하기
- 4.1 list, set, dict, ... comprehension 사용하기 (list comprehension: ≈ 리스트 표현식)
squares = [i*i for i in range(10)]
- 4.2 비교 연산자 합치기
if(a < b <= c): # if((a < b) and (b <= c)):
pass
- 4.3 삼항 연산자 (true_expression if condition else false_expression)
for index, data in data_list:
# operation: data -> result
print(result) if index == 0 else None
- 4.3 삼항 연산자 (데이터)
for index, data in data_list:
# operation: data -> result
print(result) if index == 0 else None
5. collections.Counter 사용하기
프로젝트에서 참조하면 모듈의 버전 등의 차이로 프로젝트마다 각각 다른 virtual envirorment 를 활용해야 할 경우
from collections import Counter
my_list = [10, 10, 10, 5, 5, 2, 9, 9, 9, 9, 9, 9]
counter = Counter(my_list)
print(counter) # Counter({9: 6, 10: 3, 5: 2, 2: 1})
print(counter[10]) # 3
6. f-String 사용하기 (.format() 지양)
print(f"Epoch: [{index}/{epoch_num}]")
7. dictionaries 합치기
config = {'model': 'gcn', 'layer_num': 3} # model config
args = {'epoch_num': 10, 'dropout_rate': 0.2} # job arguments
params = {**config, **args}
8. zip 사용하기
- 두개 이상의 list 한번에 순회하기
names = ['Peter', 'James', 'Robert', 'John']
ages = [13, 12, 14, 14]
grades = ['B', 'C', 'A', 'B']
for name, age, grade in zip(names, ages, grades)
print(f"name: {name}, age: {age}", grade: {grade}")
9. Underscore Placeholders
num = 10_000_000
print(f'{num:,}')