Open8
Python Tips
ピン留めされたアイテム
ピン留めされたアイテム
Python 命名規則
PEP8 で定められている。
対象 | ルール | 例 |
---|---|---|
パッケージ | 全小文字 なるべく短くアンダースコア非推奨 | tqdm, requests ... |
モジュール | 全小文字 なるべく短くアンダースコア可 | sys, os,... |
クラス | 最初大文字 + 大文字区切り | MyFavoriteClass |
例外 | 最初大文字 + 大文字区切り | MyFuckingError |
型変数 | 最初大文字 + 大文字区切り | MyFavoriteType |
メソッド | 全小文字 + アンダースコア区切り | my_favorite_method |
関数 | 全小文字 + アンダースコア区切り | my_favorite_funcion |
変数 | 全小文字 + アンダースコア区切り | my_favorite_instance |
定数 | 全大文字 + アンダースコア区切り | MY_FAVORITE_CONST |
- ファイル名 = モジュール名+.py ( or .pyw)
- C/C++ のモジュールはアンダースコアで開始
- 自クラス内でのみ使用する内部変数と内部メソッドはアンダースコアで開始
dict
の使い方
for
文中での dict
-
dict.items()
returns iterables of(key, value)
-
dict.keys()
returns iterables ofkey
-
dict.values()
return iterables ofvalue
for
文で用いた場合 default で key
が返されるが、confusing なので使わないようにする。
dict
の並び替え
sorted(dict.items(), key=lambda x: x[0]) # key で並び替え
sorted(dict.items(), key=lambda x: x[1]) # value で並び替え
list
から dict
の作り方
2 つのリストから dict
を作るには zip
を用いる。
dict(zip(key_list, value_list))
dict
の初期化
dict
の場合存在チェックが必要になるが、collections.defaultdict
を使うと不要になる。
collections.defaultdict([type of value])
*
の使い方
関数の呼び出し時に使われると、iterable を argument に変換する。
>>> fruits = ['orange', 'apple', 'pear', 'grapefruit']
>>> print(*fruits)
orange apple pear grapefruit
**
の使い方
dict
の key を用いて value を展開する。
>>> date_info = {'year': "2020", 'month': "01", 'day': "01"}
>>> print("{year}-{month}-{day}.txt".format(**date_info))
2020-01-01.txt
str
の list
からそれぞれの長さを計算する
map(collable, *iterable)
を使う。
fruits = ['orange', 'apple', 'pear', 'grapefruit']
list(map(len, fruits))
# return [6, 5, 4, 10]
.pkl
の作り方
python object を保存できる。
import pickle
# export
with open('sample.pkl', 'wb') as f
pickle.dump(sample, f)
# import
with open('sample.pickle', mode='rb') as f:
sample = pickle.load(f)
自作モジュールの使用方法
以下の module があるときを考える。
some_module.py
def some_func():
....
同じディレクトリにあるとき
main.py
import some_module
some_module.some_func()
違うディレクトリにあるとき
root
|-- module
| |-- some_module.py
|-- main.py
main.py
from module import some_module
some_module.some_func()
モジュールの更新方法
Jupyter などを使っている場合、モジュールを編集などして更新した際はモジュールを読み込み直さないと更新が反映されない (単に再度 import
を実行するだけではダメ)。
従って、以下を実行すること。
import importlib
importlib.reload([module name])