developer tip

Python if-else 속기

copycodes 2020. 9. 13. 10:51
반응형

Python if-else 속기 [중복]


중복 가능성 :
Python의 삼항 조건 연산자

파이썬에서 다음을 수행하고 싶습니다.

while( i < someW && j < someX){
   int x = A[i] > B[j]? A[i++]:B[j++];
   ....
}

분명히 i또는 하나 j가 한계에 도달하면 코드가 루프를 벗어날 것입니다. 루프 의 값 ij외부의 값이 필요합니다 .

정말해야 해

x=0
...
if A[i] > B[j]:
  x = A[i]
  i+=1
else:
  x = B[j]
  j+=1

아니면 짧은 방법을 아는 사람이 있습니까?

위의 것 외에도 Python이 다음과 유사한 것을 지원하도록 할 수 있습니까?

a,b=5,7
x = a > b ? 10 : 11

가장 읽기 쉬운 방법은

x = 10 if a > b else 11

하지만 당신은 사용할 수 andor도 :

x = a > b and 10 or 11

"Zen of Python"은 "가독성이 중요하다"고 말하고 있으므로 첫 번째 방법으로 가십시오.

또한 대신 변수를 입력 10하고로 평가 되면 and-or 트릭이 실패합니다 False.

그러나 할당보다 더 많은 것이이 조건에 의존하는 경우 다음과 같이 작성하는 것이 더 읽기 쉽습니다.

if A[i] > B[j]:
  x = A[i]
  i += 1
else:
  x = A[j]
  j += 1

하지 않는 한 당신은 넣어 ij컨테이너에 있습니다. 그러나 필요한 이유를 보여 주면 그렇지 않은 것으로 판명 될 수 있습니다.


이 시도:

x = a > b and 10 or 11

다음은 실행 샘플입니다.

>>> a,b=5,7
>>> x = a > b and 10 or 11
>>> print x
11

참고 URL : https://stackoverflow.com/questions/14461905/python-if-else-short-hand

반응형