今年も残すところあと10日
初のアドベントカレンダーで無事に2019年を締めたいと思います!
Pythonを使っていて困ったこと3つです。聞いてください。
君の型は
初心者(わたし)にありがちな事件です。
画像処理とかでNumpy使ったりOpenCVを使っていたんですが、
それぞれの関数での戻り値をちゃんと理解してなかったあの頃。
intがfloatになってることや、listがintになっているなどよくあることでした。
コード量が多くなってくると、型に関連するエラーがやっかいです。
途中でどう型が変化したのかわからなくなり、デバッグに手こずったのが今となっては懐かしいです。
手こずった時の呪文
君の型は
print(type(you))
消えないremove
for文でリストを回し、不要な要素をremoveで消していた時の話
「あ、あれ、消えてない…!?」
どんなにprintしてデバッグしても、消したはずの要素が消えていない
リストから取り出される値がなんか変?
検索してみた結果答えはここにありました
https://www.haya-programming.com/entry/2018/06/02/163415
今となっては内包表記を使うことの方が多いですが
当時困った時はとりあえず lst[:] で凌いでいました。
dict -> json, dict -> str
単純に変換にかなり手こずったというお話
import json
dic = {"test":"てすと", "辞書": "慣れるまで大変だった"}
>> {'test': 'てすと', '辞書': '慣れるまで大変だった'}
str(dic)
>> "{'test': 'てすと', '辞書': '慣れるまで大変だった'}"
json.dumps(dic, ensure_ascii=False)
>> '{"test": "てすと", "辞書": "慣れるまで大変だった"}'
お分かり、いただけたでしょうか
どっちもtypeで確認すると str なんです
数ヶ月前の私はこれに戸惑い、悩み、困惑し、なんとか乗り切ったのでした。
これに関してはjsonとstrの違いがよくわからず、結局調べることもままならないまま
「そういうものである」という勢いだけで乗り切ってしまいました。
知見のある方お待ちしております!
最後に
アドベントは軽く読める読み物、というのをどこかで聞いたので比較的短い記事にしてみました。
(ま、間に合わなかったとかじゃなくて)
実際1年間実務でPythonを触ってみて、色々と困ることはたくさんありましたが、
Pythonだから困ったのか、エンジニアとして初学者だから困ったのか、と言われると後者であるパターンが多いように思います。
なのでここに載せるものを考えた結果、この3つにしかならなかったというのが本音だったり…。
ですがこの3つだけでも記事として表に出せてよかったです!
記事の構成や文章力は日々精進していきたいと思いますので今後ともよろしくお願いします!
では良いお年を!