2023. 11. 7. 17:16ㆍNAVER AI Tech/Python & AI math
1. split(), ''.join()
- string.split(',') -> 이와 같이 구분자를 설정해줄 수도 있음
- '-'.join(['2023', '11', '01']) -> '2023-01-01' 이와 같이 이어붙일 때 구분자를 지정할 수도 있다.
2. list comprehension
- result = [i for i in range(10) if i %2 == 0]
3. enumerate(), zip()
for idx, value in enumerate(list):
print(idx, value)
for value1, value2 in zip(list1, list2):
print(value1, value2)
4. lambda x : x[1], map(int, list), reduce()
- lambda 익명의 함수 -> 최근 크게 권장하지는 않는 구조. 그래도 많이 쓰니까 알아두긴 해야해..
- map(function, element) -> element에 function을 적용한 결과를 반환.
- reduce(lambda x,y : x+y, [1,2,3,4,5]) -> 재귀적으로 output이 다시 x라는 input으로 들어가는 구조. 잘 안쓰는데 알아놓긴 해야해..
5. generator
- iter(), next() 함수로 구동.
- 메모리 사용 입장에서 효율적이다. sequence 데이터에 대해서 다음 메모리의 주소만 가지고 있고 전체 데이터를 메모리에 올리지 않음.
- yield를 통해 element 값을 반환해줌(없으면 메모리주소를 반환)
- 대용량 데이터를 처리해야할 때 훨씬 중요함.
6. asterisk
- 개수가 정해지지 않은 변수를 함수의 parameter로 사용하는 방법.
- * 기호를 사용해서 함수의 parameter를 표시
def asterisk_test(a,b,*args):
print(a+b+sum(args))
asterist_test(1,2,3,4,5) # a = 1, b = 2, args = (3,4,5)
-> 15
def kwargs_test(**kwargs):
print(kwargs)
kwargs_test(first=3, second=4, third=5) # 키워드 가변인자이므로 key=value를 전달해주어야함.
-> {'first':3, 'second':4, 'third':5}
def kwargs_test2(a, *args, **kwargs):
print(a)
print(args)
print(kwargs)
kwargs_test2(10, 3,4,5,6, first=3, second=4, third=5) # 이때 키워드 가변인자가 맨 뒤에 와야함
#kwargs_test2(a=10, 3,4,5,6, first=3, second=4, third=5) # 에러뜬다. 주의할 것
-> 10
-> (3,4,5,6)
-> {'first':3, 'second':4, 'third':5}
가변인자 != 키워드 가변인자
* : list unpacking 기능도 함.
def asterisk(a, *args):
print(a, args)
print(a, *args)
asterisk(1, (2,3,4,5,6))
-> 1 (2,3,4,5,6)
-> 1,2,3,4,5,6
'NAVER AI Tech > Python & AI math' 카테고리의 다른 글
10. (Python) Module & Project (0) | 2023.11.08 |
---|---|
9. (Python) 객체 지향 프로그래밍 (0) | 2023.11.08 |
7. (Python) Data Structure (0) | 2023.11.07 |
6. (Python) String 과 Function concept (0) | 2023.11.07 |
5. (Python) 조건문, 반복문 (0) | 2023.11.07 |