본문 바로가기
Python

[Python] any(), all()

by 보먀 2024. 8. 9.
728x90
반응형

오늘 프로그래머스 문제를 풀다가 내가 푼 풀이보다 깔끔한 풀이를 발견했는데, 알고 있으면 문제 풀 때 유용할 것 같은 함수가 있어서 포스팅해보려고 한다 !

문제: https://school.programmers.co.kr/learn/courses/30/lessons/42587?language=python3

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

문제 풀이 코드

def solution(priorities, location):
    queue =  [(i,p) for i,p in enumerate(priorities)]
    answer = 0
    while True:
        cur = queue.pop(0)
        if any(cur[1] < q[1] for q in queue):
            queue.append(cur)
        else:
            answer += 1
            if cur[0] == location:
                return answer

 

 

- all ()

  • 반복 가능한 자료형(iterable)을  인자로 받음 -> 반복 가능한 자료형: 리스트, 튜플, 집합, 딕셔너리, 문자열 ...
  • 인자로 들어온 데이터의 모든 요소가 참이면 True 반환 (1개라도 False 이면 False)
  • 인자로 들어온 데이터가 비어있다면 True 반환

-> and 연산자 같은 느낌이라고 생각하면 됨

 

all 함수의 코드를 보면,

인자로 들어온 데이터를 검사해서 하나라도 참이 아닌 요소가 있다면 False 를 반환하고,  

모두 참으로 판정이 되면 True 를 반환한다. 

 

그리고 인자로 들어온 데이터가 비어있는 경우에는,

for 문을 거치지 않고 내려가서 True 를 만나게 되기 때문에 True 반환한다. 

# 파이썬 공식 홈페이지의 all 함수 코드

def all(iterable):
    for element in iterable:
        if not element:
            return False
    return True

 

 

- any()

  • 반복 가능한 자료형(iterable)을 인자로 받음 -> 반복 가능한 자료형: 리스트, 튜플, 집합, 딕셔너리, 문자열 ...
  • 인자로 들어온 데이터의 요소 중 1개라도 True 이면 True 반환
  • 인자로 들어온 데이터의 모든 요소가 False 일 때 False 반환
  • 인자로 들어온 데이터가 비어있는 경우 False 반환

-> or 연산자 같은 느낌이라고 생각하면 됨

 


any 함수의 코드를 보면,

인자로 들어온 데이터를 검사해서 하나라도 참인 요소가 있다면 True 를 반환하고,  

모두 거짓으로 판정이 되면 False 를 반환한다. 

 

그리고 인자로 들어온 데이터가 비어있는 경우에는,

for 문을 거치지 않고 내려가서 False 를 만나게 되기 때문에 False 반환한다. 

# 파이썬 공식 홈페이지의 any 함수 코드

def any(iterable):
    for element in iterable:
        if element:
            return True
    return False

 

 

any 는 이런 식으로 사용할 수 있다. (all 도 마찬가지로 비슷하게 사용가능)

# 리스트와 비교할 수를 정의합니다.
numbers = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
num = 7

# any()를 사용하여 num이 리스트의 모든 원소보다 큰지 확인합니다.
is_larger = not any(x > num for x in numbers)

# 결과를 출력합니다.
if is_larger:
    print(f"{num}는 리스트의 모든 원소보다 큽니다.")
else:
    print(f"{num}는 리스트의 일부 원소보다 작거나 같습니다.")

 

 

 

참고
https://docs.python.org/ko/3/library/functions.html

 

Built-in Functions

The Python interpreter has a number of functions and types built into it that are always available. They are listed here in alphabetical order.,,,, Built-in Functions,,, A, abs(), aiter(), all(), a...

docs.python.org

 

728x90
반응형

'Python' 카테고리의 다른 글

[Python/파이썬]python 입력 받기  (1) 2024.04.12