mocchaso note

サーバーエンジニアが何か色々呟いているところ。

言語処理100本ノック 2020「30. 形態素解析結果の読み込み」

空文字に対してsplitを適用するとどうなる?

  • 配列に空文字列が1つ入る。
>>> "".split(",")
['']
  • ※分割パターンを指定しないと、何故か空のリストになる。
>>> "".split()
[]
  • ※分割パターンが空文字だとエラーに。
>>> "abc".split("")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: empty separator

0xcc.net

list.clear()の注意点

辞書のvalueにリストを持たせ、list.clear()をすると、辞書内全てのvalueのリストが抹消されてハマりました。

原因

辞書に登録する前のリストの変数(list = [XX, XX, ...])と、辞書に登録した箇所のリストで、オブジェクトのIDが共有されているため。
前者の変数にclear()を適用すると、後者の辞書内のリストにも削除処理がかかってしまうようです。

対策

list.clear()ではなく、空のリストの再代入を行うことで、回避できます。

it-for-pharma.com