파이썬(프로그래머스쿨)

리스트 안에서 특정값들(리스트)에 해당하는 값만 출력하고 싶을때[파이썬]

놀라운 탐험가 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', '.']

 

반응형