파이썬(프로그래머스쿨)
리스트 안에서 특정값들(리스트)에 해당하는 값만 출력하고 싶을때[파이썬]
놀라운 탐험가
2022. 12. 24. 01:00
반응형
안녕하세요. 오늘은 리스트 안에서 특정값들(리스트)에 해당하는 값만 출력하고 싶을때 어떻게 하는지 방법을 알아보고자 합니다.
문제 : 주어진 리스트에서 특정 값들( '-', '_', '.') 과 알파벳, 숫자들만 출력을 하라.
a = "dd .abbdd.!@#"
a 는 공백이랑 점(.) @,! 등등이 들어간 문자열입니다. 이 상황에서 공백이나 !@#들을 제거하고, '.'과 문자만 가져오고 싶습니다.
def LEVEL2(list_id):
new_nums = []
contain_list = ['-', '_', '.']
for i in list_id:
if i.isalnum():
new_nums.append(i)
elif i in contain_list: # 리스트안에서 조건 맞는 지 찾을 떄 -> in 사용
new_nums.append(i)
return new_nums
LEVEL2(a)
이 식은 문제 해결에 필요한 수식을 함수 LEVEL2를 통해 작성했습니다.
LEVEL2에대한 설명은 다음과 같습니다.
1. new_nums는 리턴 받을 리스트에 대한 변수설정이다.
2. contain_list는 포함시켜도 되는 문자열에 대한 리스트이다.
여기서 중요한 점은 "in"을 사용한 겁니다. in 을 통해 리스트 안에서 여러가지 조건 에 대해 동시에 찾을 수 있게 합니다.
식 풀이 : 1. list_id ( 문자열 a 가 대입) 의 각 글자 하나 하나 에 대해 isalnum을 통해 문자인지, 숫자인지 파악합니다.
여기서 isalnum()은 문자와 숫자들이 입력받았을때, true 아니면 false 를 반환합니다. true이면 new_nums의 리스트에 추가합니다.
그다음 만약 contain_list의 값을 각 글자 하나하나가 포함하는지 여부를 묻고, 포함하면 new_nums의 리스트에 추가합니다.
그러면 결과값으로 이렇게 나오는 것을 확인할 수 있습니다.
['d', 'd', '.', 'a', 'b', 'b', 'd', 'd', '.']
반응형