私は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']
それはリストのメンバーとして、これら2つの空の文字列が含まれていますif line
の欠如は悪い結果が得られます例を見つけました。
空でない要素をフィルタ処理します。 –
ifを満たす要素のみがリストに入れられます。これは、任意の解説チュートリアルでカバーする必要があります。 – Carcigenicate
@Carcigenicate 'ifライン'が実際の状態を持つようには見えないので、彼らは混乱していると思います。この混乱の原因は「真実」の価値です。私はあなたがこれを読むことをお勧めします:https://docs.python.org/2.4/lib/truth.htmlこれは理解しやすく、簡単です 'truthy'値は非常に便利です –