any() 함수

반복 가능한 자료형의 어느 하나라도 참이면 True를 리턴, 만약 자료형이 비어 있으면 False를 반환한다

 

# 공식문서
def any(iterable):
    for element in iterable:
        if element: #이부분은 자료형이 존재한다는 의미인가부다
            return True
    return False

공식 문서에서 소개하는 any() 함수 내부

if <인자> 인자를 바로 입력하는게 하나하나를 돌며 true false를 확인한다는 의미인가부다 *<>안에 들어오는 단어가 '인자'인지 '파라미터' 인지 아직 잘 구분이 안간다

 

내가 처음 만든 코드

# 내가 만들었던 코드
def my_any(elements):
    if not elements:
        return False
    for i in elements:
        if not i :
            return False
        else:
            return True

공식문서를 참고하기 전 직접 만들었던 my_any 함수

my_list_01 = []
my_list_02 = [1, 2, 3, '4']
my_list_03 = [[], 2, 3, '4']

각각 any 함수와 my_any 함수에 위의 리스트를 입력해주면

any : false / true / true

my_any : false / true / false

값을 반환하는데 이는 my_any함수에서 빈 리스트를 감지하고 false를 반환하고 있다는걸 확인할 수 있었다

사실 생각 안하고 그냥 공식 문서를 이해하고 넘어가는게 빠르기야 하지만 내 코드를 고쳐서 맞는 값이 나오게 해보자

 

최종 코드

def my_any(elements):
    # 이 코드에선 빈 자료형인 경우 none을 반환한다
    if not elements:
        return False
    else:
        return True

꽤 한참

for i in elements:

    if not i:

        return : False

    else:

        return : True

이 문장을 어떻게 고쳐야 할까를 고민했는데

하나라도 참이라면 모두 참이다(or)을 표현하기 위해선 그냥 이 for문을 지우면 된다는걸 멍청하게도 한참 후에 깨닳았다

그래서 최종 코드 따란

 

반응형

+ Recent posts