-
[Python] 파이썬 문제 해결 전략 (3)내일배움캠프/Python 2024. 7. 11. 20:21
오늘도 코딩 문제 lv.0 30문제를 풀었습니다.
갈수록 모르는 게 줄어들고 있습니다...
반복가능한 객체에서 조건에 맞는 것들만 가져오기
def solution(str_list, ex):
return ''.join(filter(lambda x: ex not in x, str_list))간략하게 이 코드 설명을 드리자면
익명 함수인 lambda를 통해서 조건을 주고,
filter를 통해서 str_list의 요소 중 조건에 부합하는 요소만 필터링합니다.
그리고 join을 써서 필터링된 요소들과 합칩니다!
알고 있는 내용이었지만
막상 필요할 때 까먹어서 사용하지 못해 아쉽습니다..
집합 연산자를 통해 공통 요소 구하기
return len(set(s1)&set(s2))
s1과 s2 리스트에 든 공통 원소의 개수를 세는 문제에서
위와 같이 집합으로 변환시켜준 뒤 교집합을 구하여 개수를 세어줬습니다.
wow...
이 풀이보고도 감탄했습니다...
집합 연산자로는 다음이 있습니다.
교집합
set3 = set1 & set2
합집합
set3 = set1 | set2
차집합
set3 = set1 - set2
https://www.w3schools.com/python/python_sets_methods.asp
W3Schools.com
W3Schools offers free online tutorials, references and exercises in all the major languages of the web. Covering popular subjects like HTML, CSS, JavaScript, Python, SQL, Java, and many, many more.
www.w3schools.com
해당 사이트에서 집합 연산자에 대해 추가적으로 확인하실 수 있습니다.
리스트 컴프리헨션의 구조
return [i*k if k%2!=0 else i+k for i in arr]
리스트 컴프리헨션에서는 if와 for의 순서가 정해져 있습니다.
리스트 컴프리헨션의 기본 구조
[expression for item in iterable]
리스트 컴프리헨션에 if 조건 주기
[expression for item in iterable if condition]
if외에 else 조건도 주고 싶다면
[expression if condition else alternative_expression for item in iterable]
반드시 해당 순서에 맞게 작성해야합니다!
딕셔너리 만들기
x = ('key1', 'key2', 'key3')
y = 0
thisdict = dict.fromkeys(x, y)
print(thisdict)이렇게 하면 x는 딕셔너리의 키 값으로
y는 밸류값으로 할당됩니다.
문제를 풀기 위해서는
x에 있는 요소가 중복되지 않게 해줘야 했고
x 내의 요소 순서가 바뀌면 안된다는 조건도 있었습니다.
x를 set으로 해주면
중복값은 사라지나
요소 순서가 정렬되어 나타나게 됩니다.
따라서 키 값은 중복이 허용되지 않고
순서도 바뀌지 않는
딕셔너리로 만들어줘야 겠다고 생각했습니다.
딕셔너리를 만드는 방법은 많은데
굳이 이 방법을 쓴 이유는
x처럼 값이 주어졌을 때
x를 key값으로 지정해주기 위해서 였습니다.
문제를 풀다보니
딕셔너리를 활용하는 능력이 좀 부족한 것 같았습니다.
조건을 지정해주고, 값들을 매칭해주는 등
고난도의 문제에서 활용해줄 필요가 있기 때문에
복습해야 겠다고 생각이 들었습니다.
'내일배움캠프 > Python' 카테고리의 다른 글
[Python] 정규표현식 (기초편) (0) 2024.07.15 [Python] 파이썬 문제 해결 전략 (4) (0) 2024.07.12 [Python] 파이썬 문제 해결 전략 (2) (0) 2024.07.10 [Python] 파이썬 문제 해결 전략 (1) (0) 2024.07.08 [Python] Lambda 함수 (0) 2024.07.02