-
Python 코테 기본 문법코테공부 2024. 11. 18. 16:53
1. filter
1.1 filter 메소드
nums=[3,4,6,5,9] odd=list(filter(lambda n: n % 2 != 0,nums)) print(odd) #[3,5,9]
* lambda함수 구조 파라미터1, 파라미터2 ...: 함수 실행 구문
1.2 list comprehension 메소드
nums=[3,4,6,5,9] odd = [n for n in nums if n%2 != 0] print(odd) #[3,5,9]
번외) for 문
#1 기본 for
arr=[i for i in range(5)] print(arr) #[0, 1, 2, 3, 4] nums=[1,2,3,4,5] for i in nums: print(i) #요소 한개씩 출력
#2 for문 with 딕셔너리
obj = {0:"key0", 5:"key5", 2:"key50", 3:"key3"} for key in obj: print(key) #key 차례대로 출력 for key in obj: print(obj[key]) #value 차례대로 출력 #key기준 정렬 sortedArr=sorted(obj.items()) print(sortedArr) #[(0, 'key0'), (2, 'key50'), (3, 'key3'), (5, 'key5')] #value기준 정렬 sortedArr=sorted(obj.items(),key=lambda n: n[1]) print(sortedArr) # [(0, 'key0'), (3, 'key3'), (5, 'key5'), (2, 'key50')]
주목할 점: 딕셔너리를 정렬할 경우 (튜플)리스트 형태로 반환됨. key값에 따른 밸류 조회 불가
2. reduce
reduce(함수, 시퀀스) : 시퀀스의 원소들을 누적으로 함수에 적용
from functools import reduce #reduce(함수, 시퀀스) : 시퀀스의 원소들을 누적으로 함수에 적용 #시퀀스란 문자열, 리스트, 튜플 등 result=reduce(lambda n,m: n+m, [0,1,2,3,4]) print(result) #10
문자열 거꾸로 뒤집을 때도 사용 가능
from functools import reduce #reduce(함수, 시퀀스) : 시퀀스의 원소들을 누적으로 함수에 적용 #시퀀스란 문자열, 리스트, 튜플 등 result=reduce(lambda n,m: m+n, "abcd") print(result)
3. 문자열과 숫자
I=100 print(I+1) #101 print(str(I)+"1") #1001 #각 자리 숫자 더하기 #map(func,iterable) ans=sum(map(int,str(I))) print(ans) #1 print(list(map(int,str(I)))) #[1, 0, 0]
#특정 원소 제거 myarr=[1,2,3,4,5,6,7] remove_set=[3,4,5] newarr=[n for n in myarr if n not in remove_set] print(newarr) #[1, 2, 6, 7]
4. Set
5. 조합/순열
combinations/combinations_with_replacement/permutations/product(iter,repeat=숫자)
from itertools import * myarr=[1,2,3,4,5,6,7] #조합 combinations print(list(combinations(myarr,2))) #7C2 print(len(list(combinations(myarr,2)))) #21 #순열 permutations print(list(permutations(myarr,2))) #7P2 print(len(list(permutations(myarr,2)))) #42 #중복 조합 combinations_with_replacement(교체 가능한 조합으로 외우기) print(list(combinations_with_replacement(myarr,2))) #7H2 print(len(list(combinations_with_replacement(myarr,2)))) #28 #중복 순열 Product print(list(product(myarr,repeat=2))) #7π2 print(len(list(product(myarr,repeat=2)))) #49
+ 모듈 내 메소드 기억 안날 때
import itertools # itertools 모듈 전체 import => method사용 시, itertools.combinations() import collections print(dir(itertools)) # ['__doc__', '__loader__', '__name__', '__package__', '__spec__', '_grouper', # '_tee', '_tee_dataobject', 'accumulate', 'chain', 'combinations', # 'combinations_with_replacement', 'compress', 'count', 'cycle', 'dropwhile', # 'filterfalse', 'groupby', 'islice', 'permutations', 'product', 'repeat', # 'starmap', 'takewhile', 'tee', 'zip_longest'] #그 다음 from,import 사용 주의 from itertools import combinations #itertools 모듈에서 combinations만 import
'코테공부' 카테고리의 다른 글
[프로그래머스] 문자열 압축 (0) 2025.02.27 [백준 16926번] 배열 돌리기 1 (0) 2025.02.27 [백준] 누적합구하기 (0) 2025.02.07 [프로그래머스] 01문자열,02재귀,03해쉬(셋,맵) (0) 2025.02.05 파이썬 기본 check point 정리 (0) 2024.11.22