-
32.4 연습문제: 이미지 파일만 가져오기코딩도장 심사문제모음 2020. 11. 5. 20:52728x90
다음 소스 코드를 완성하여 확장자가 .jpg, .png인 이미지 파일만 출력되게 만드세요. 여기서는 람다 표현식을 사용해야 하며 출력 결과는 리스트 형태라야 합니다. 람다 표현식에서 확장자를 검사할 때는 문자열 메서드를 활용하세요.
풀이.1
files = ['font', '1.png', '10.jpg', '11.gif', '2.jpg', '3.png', 'table.xslx', 'spec.docx'] a =list(filter(lambda x :'jpg' in x or 'png' in x ,files)) print(a) :: ['1.png', '10.jpg', '2.jpg', '3.png']
in 연산자를 통해 files 각 요소의 문자열 안에 "jpg, png' 파일이 있다면 참으로 filter를 이용해 원하는 요소만 가져온다.
filter 객체를 보기위해 list로 변환 ( list 변환 하지 않을 경우 객체 error <filter object at 0x02E1F490>
풀이.2 (코딩도장)
files = ['font', '1.png', '10.jpg', '11.gif', '2.jpg', '3.png', 'table.xslx', 'spec.docx'] a =list(filter(lambda x : x.find('.jpg') != -1 or x.find('.png') != -1, files)) print(a) :: ['1.png', '10.jpg', '2.jpg', '3.png']
코딩도장에서는 문자열 메서드인 .find을 사용하여 답안을 작성하였다.
find 메서드의 경우 특정 문자열이 있으면 첫 인덱스 번호를 반환한다.
반면, 특정 문자열이 없을 경우 -1을 반환한다.
이를 이용해 .jpg가 != -1 --> 특정 문자열에 jpg가 있으면 -1이 나오지 않기때문에 True가 된다.
또한, jpg, png 두가지 이미지 확장자를 출력해야하기에 on 으로 묶어준다.
TIL.15 내용 중
- find
## 문자열에서 특정 문자열을 찾아 인덱스를 반환 , 특정 문자열이 없는 경우 -1 을 반환함
## 찾고자하는 문자열이 여러번 등장할 경우 가장 첫 인덱스만을 반환함
## .find('특정문자열') .rfind('특정문자열')
## 왼쪽에서 부터 특정 문자열을 찾는것이 디폴트이며, rfind로 오른쪽에서부터 특정 문자열을 찾을 수 있다.
728x90'코딩도장 심사문제모음' 카테고리의 다른 글
33.5 연습문제: 호출 횟수를 세는 함수 만들기 (0) 2020.11.06 32.5 심사문제: 파일 이름을 한꺼번에 바꾸기 (0) 2020.11.06 31.5 심사문제 : 재귀호출로 피보나치 수 구하기 (0) 2020.11.04 31.4 연습문제 : 재귀호출로 회문 판별하기 (0) 2020.11.04 30.7 심사문제 : 가장 낮은 점수, 높은 점수와 평균 점수를 구하는 함수 만들기 (0) 2020.11.03