2014-02-14 5 views
1

파이썬에서이 작업을 수행하는 올바른 방법에 대해 혼란 스럽습니다 .... for 루프를 사용하여 목록을 반복하고 각각의 요소파이썬 목록에서 for 루프를 사용하는 IN 연산자와 OR 연산자

>>> a 
[1, 2, 3, 4, 5] 
>>> even 
[2, 4] 
>>> odd 
[1, 3] 
>>> for i in a: 
...  if i in even or odd: 
...    print(i) 
... 
1 
2 
3 
4 
5 

왜이 코드입니다 : 목록의 'A'가 2 개 이상의 다른 목록 중 하나에 있지만 나는이 작업을 수행하는 방법을 이해하지 못하는 것 같습니다 ... 여기 무슨 뜻인지의 몇 가지 기본적인 코드는 5는 짝수 목록이나 홀수 목록에 없으므로 인쇄 5? 또한 하나의 목록을 반복하고 각 요소가 다른 양의 목록 중 하나를 순회 할 수 있는지 확인하기 위해 적절한 방법은 무엇입니까?

답변

5

문제는 여기에 있습니다 : i in even or odd

이이 같은 구문 분석 :

(i in even) or (odd).

파이썬은 도움이되지 않고 odd 목록을 부울 값 (이 경우 Truebecause the list is not empty)으로 변환하려고합니다.

even 또는 odd에 있는지 정확하게 확인하는 시도 i in even or i in odd을 시도하십시오.

3

당신은 두 번 in를 사용해야합니다 : ieven에있는 경우

if i in even or i in odd: 

i in even가 확인합니다. i in oddiodd에 있는지 확인합니다.


그렇지 않으면 코드는 다음과 같이 평가됩니다 :

if (i in even) or (odd): 

또한, 경우 문의 조건이 항상 True로 평가됩니다 odd 항상 평가 비어 있지 않은 목록 (때문에 파이썬에서 True).


마지막으로, 당신은 파이썬은 하지 영어, 그 구문은 다소 유사하다하더라도, 그 기억해야합니다. :)

관련 문제