言語処理100本ノック 2020「30. 形態素解析結果の読み込み」
空文字に対してsplitを適用するとどうなる?
- 配列に空文字列が1つ入る。
>>> "".split(",") ['']
- ※分割パターンを指定しないと、何故か空のリストになる。
>>> "".split() []
- ※分割パターンが空文字だとエラーに。
>>> "abc".split("") Traceback (most recent call last): File "<stdin>", line 1, in <module> ValueError: empty separator
list.clear()
の注意点
辞書のvalueにリストを持たせ、list.clear()
をすると、辞書内全てのvalueのリストが抹消されてハマりました。
原因
辞書に登録する前のリストの変数(list = [XX, XX, ...]
)と、辞書に登録した箇所のリストで、オブジェクトのIDが共有されているため。
前者の変数にclear()
を適用すると、後者の辞書内のリストにも削除処理がかかってしまうようです。
対策
list.clear()
ではなく、空のリストの再代入を行うことで、回避できます。