파이썬 생성기 객체를 이해해야합니다
-
12-12-2019 - |
문제
다음에서 :
name = 'TODD'
chars = set('AEIOU')
for ii in range(-1, int(math.copysign(len(name) + 1, -1)), -1):
if any((cc in chars) for cc in name[ii]):
print 'Found'
else:
print 'Not Found'
.
(...) 내부에있는 것이 생성기 객체입니다.내가 이해하지 못하는 것은 괄호가 부족하다는 것입니다.
감사합니다.
해결책
괄호는 하나의 인수 만 사용하는 함수 호출, 발전기 표현식 구문 특히 허용합니다.
다른 팁
표현식이 괄호 안의 유일한 방법이면 발전기 표현식의 괄호를 남겨 둘 수 있습니다. 설명서 :
괄호는 하나의 인수 만 사용한 호출에서 생략 될 수 있습니다.
아니오, 여분의 가방금은 필요하지 않으며 실제로 테스트중인 "부울 표현식"에 항상 필요한 것은이 두 가지 간단한 예를 참조하십시오.
In [37]: any(i > 10 for i in range(19))
Out[37]: True
In [38]: all(i > 10 for i in range(19))
Out[38]: False
.
당신이 가지고있는 것은 단일 인수 (생성자 표현식)가있는 함수 호출이므로 칠지가 필요하지 않습니다. 발전기 표현식 문서
For function calls with just one argument (that generator expression), they aren't required per the docs
The parentheses can be omitted on calls with only one argument. See section Calls for the detail.
제휴하지 않습니다 StackOverflow