programing

이 입력은 파이썬 'any' 기능과 어떻게 작동합니까?

goodsources 2023. 7. 25. 20:54
반응형

이 입력은 파이썬 'any' 기능과 어떻게 작동합니까?

의 python docs 페이지에서 에 해당하는 코드는any()함수는 다음과 같습니다.

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

이 함수는 이 형식으로 호출할 경우 테스트할 요소를 어떻게 알 수 있습니까?

any(x > 0 for x in list)

함수 정의에서 볼 수 있는 것은 내가 반복 가능한 물체를 통과하고 있다는 것뿐입니다.어떻게?for내가 무언가를 찾고 있다는 것을 알고 있습니다.> 0?

사용하는 경우any(lst)보다시피lst일부 항목의 목록인 iitable입니다.포함된 경우[0, False, '', 0.0, [], {}, None](모두 부울 값:False) 그 때any(lst)되지요False.한다면lst또한 다음 중 하나를 포함했습니다.[-1, True, "X", 0.00001](모든 것이 평가됨)True) 그 때any(lst)되지요True.

당신이 게시한 코드에서x > 0 for x in lst이것은 생성자 식이라고 불리는 다른 종류의 반복 가능한 표현입니다.생성자 표현식이 파이썬에 추가되기 전에, 당신은 목록 이해를 만들었을 것입니다. 이는 매우 유사하지만 주변 환경을 포함합니다.[]의:[x > 0 for x in lst]에서lst재중[-1, -2, 10, -4, 20]다음과 같은 목록을 얻을 수 있습니다.[False, False, True, False, True]그러면 이 내부 값이 다음으로 전달됩니다.any함수, 반환됩니다.True적어도 하나는 있기 때문에True가치.

그러나 생성기 식을 사용하면 Python은 더 이상 내부 목록을 생성할 필요가 없습니다.True(s)그리고.False(s)값은 다음과 같이 생성됩니다.any함수는 생성자 식에 의해 한 번에 하나씩 생성된 값을 반복합니다.그리고 그 이후로.any짧은 시간 동안, 그것은 첫 번째를 보는 즉시 반복을 멈출 것입니다.True가치. 이것은 당신이 만든 것이라면 특히 유용할 것입니다.lst와 같은 것을 사용하여lst = range(-1,int(1e9))(또는)xrangePython2.x를 사용하는 경우).이 표현이 10억 개 이상의 항목을 생성하더라도,any세 번째 엔트리까지 가면 됩니다.1그것은 평가합니다.True위해서x>0등등any돌아올 수 있습니다True.

만약 당신이 목록 이해를 만들었다면, Python은 먼저 메모리에 10억 개의 요소로 구성된 목록을 만든 후에 그것을 전달해야 했을 것입니다.any그러나 생성기 표현식을 사용하면 다음과 같은 Python의 내장 함수를 사용할 수 있습니다.any그리고.all일찍 일어나자마자True또는False값이 표시됩니다.

>>> names = ['King', 'Queen', 'Joker']
>>> any(n in 'King and john' for n in names)
True

>>> all(n in 'King and Queen' for n in names)
False

그것은 단지 여러 줄의 코드를 하나로 줄였을 뿐입니다.다음과 같이 긴 코드를 작성할 필요가 없습니다.

for n in names:
    if n in 'King and john':
       print True
    else:
       print False

(x > 0 for x in list)이 함수에서 호출은 생성자 식을 생성합니다.

>>> nums = [1, 2, -1, 9, -5]
>>> genexp = (x > 0 for x in nums)
>>> for x in genexp:
        print x


True
True
False
True
False

거요?any 첫 단락 를 사용합니다.True

왜냐하면 가증스러운 것은.

(x > 0 for x in list)

:x > 0둘 중 하나를 반환합니다.True또는False그래서 당신은 많은 불을 가지고 있습니다.

간단히 말해서, any()는 이 작업을 수행합니다. 목록에서 하나의 충족 값을 발견하더라도 조건에 따라 true를 반환하고 그렇지 않으면 false를 반환합니다.

list = [2,-3,-4,5,6]

a = any(x>0 for x in lst)

print a:
True


list = [2,3,4,5,6,7]

a = any(x<0 for x in lst)

print a:
False

언급URL : https://stackoverflow.com/questions/16505456/how-does-this-input-work-with-the-python-any-function

반응형