2012-03-24 3 views
5

목록을 bool 값으로 바꾸는 가장 좋은 방법은 무엇입니까?파이썬에서리스트의 bool 값

if self.my_list: 
    return True 
return False 

그러나 충분히 파이썬입니다 :

return eval_bool(my_list) 

은 내가 같이 일하기로되어있는 __nonzero__ 메소드를 구현하는 사용자 지정 컨테이너를 가지고 : 내가 좋아하는 뭔가를 찾고 있어요? 이 코드가 다르게 작동하기 때문에 :) 어쨌든, 파이썬은 if 문에서 목록의 값을 해석하는 방법을 궁금 :

return my_list == True 

J.

답변

14

그냥 사용

bool(my_list) 

는 평가 어느 그것은 파이썬 "진실성"으로서 실제 불린을 반환합니다.

+0

와우, 얼마나 쉬운가요? 감사! – galapah

+1

'bool'을 사용할 수 있지만'my_list :'를 호출하고 Python이'my_list'가'True' 또는'False'로 평가되어야하는지 여부를 판단하게하는 것은 더 Python 적입니다. –

+0

@SimeonVisser : 왜'my_list : True를 반환 \ n'' False''''return bool (my_list)'보다 더 비범 한가? – WolframH

2

len(my_list) == 0이면 false으로, 그렇지 않으면 true으로 반환됩니다. 쓸 완전히 파이썬이다

는 정수로 반환되어 있지만, 그렇지 않은 제로 길이에 대한 true, 거짓으로 평가
return len(my_list) 

.

+0

그러나 정수 값이 반환되며 부울 값이 필요합니다. –

+0

그것은 작동하지만 pep 8을 위반합니다. 시퀀스 (문자열,리스트, 튜플)의 경우 빈 시퀀스가 ​​false라는 사실을 사용하십시오. 예 : 그렇지 않으면 seq : if seq : No : len (seq)이 아닌 경우 len (seq) – luca