나는 Norvig's BASIC interpreter implemented in Python을 통해 작업하고 있습니다.목록 작성 내에서 'if'사용
내게는 외모가있는 코드가 있지만이 사람은 저쪽에 100 레벨이 넘기 때문에 뭔가 불필요한 것을 쓴 것보다 이해하지 못할 가능성이 큽니다.
def lines(text):
"A list of the non-empty lines in a text."
return [line for line in text.splitlines() if line]
#return [zaa for zaa in text.splitlines()]
목록 이해 - if line
으로 끝나는 이유는 무엇입니까?
[zaa for zaa in text.splitlines()]
대신이 절을 제거하면 텍스트 나 공백 행을 전달해도 함수가 작동한다고 생각합니다.
foo ="""mike\nnew\nbar"""
bar ="\n\n"
print lines(foo)
print lines(bar)
what = lines(bar)
print(type(what))
['mike', 'new', 'bar']
[]
<type 'list'>
내가 뭔가를 misundersatnding해야 - 내가 그 if line
가도 평가 될 때, 입력을 적절히 처리에 혼자의 필요성을하게 이해할 수 없습니다.
편집 :
bar ="""one
two
three
five
seven"""
#bar = ""
print lines(bar)
['one', 'two', 'three', '', 'five', '', 'seven']
그것은 목록의 구성원으로서 그 두 개의 빈 문자열을 포함하십시오 if line
의 부족은 나쁜 결과를 얻을 수의 예를 발견했다.
비어 있지 않은 요소를 필터링합니다. –
if를 만족하는 요소 만 목록에 추가됩니다. 이것은 모든 이해법 튜토리얼에서 다뤄져야합니다. – Carcigenicate
@Carcigenicate 'if line'이 실제 조건을 갖고 있지 않기 때문에 혼란 스럽다고 생각합니다. 이 혼란의 원인은'진실 '가치이다. OP : https://docs.python.org/2.4/lib/truth.html 이해하기 쉽고 'truthy' 값은 매우 편리 할 수 있습니다. –