Pythonメモ : あまり知られていない(かもしれない)テクニック集 その3
- lightweightswitch.py : 辞書をswitch文として使う
- namedformatting.py : 辞書を使った文字列フォーマット
- boolisslow.py : ブール値でのループは遅い(Python 2のみ)
- calculator.py : operatorモジュールを使用した計算例
- setoperators.py : setのoperatorとメソッドを使った集合演算
- codetofunction.py : コードで書いた計算式を関数にする
- nested_functions.py : ネストされた関数
- objgetnamedattribute.py : オブジェクトの属性値を取得
- unique_by_attr.py : 同じ属性値のオブジェクトの重複削除
- common_seq_method.py : シーケンス型で共通のメソッドを実行
- contextmanagers.py : コンテキストマネージャ
- cacheproperty.py : デコレータを使用した値のキャッシュ
- deck_as_list.py : 特殊メソッドとnamedtupleを使用したトランプの例
- socketmsghandling.py : ソケットプログラミング
上記リポジトリにあまり知られていない(かもしれない)Pythonのテクニックが49個まとめられていたので残りを見ていく(その1、その2は下記リンク)。
lightweightswitch.py : 辞書をswitch文として使う
Pythonにはswitch文がないので辞書をswitch文の代わりとして使う方法。
コード
#! /usr/bin/env python3 """lightweight switch statement""" a = { True: 1, False: -1, None: 0 } print(a.get(False, 0)) """works with functions as well""" def add(a, b): return a + b def subtract(a, b): return a - b b = { '+': add, '-': subtract } print(b['+'](1, 1))
実行結果
-1 2続きを読む
Pythonメモ : あまり知られていない(かもしれない)テクニック集 その2
- listtocommaseparated.py : リストをカンマ区切りで出力
- minmaxindex.py : リスト内の最小値、最大値のインデックスを取得
- removeduplicatefromlist.py : リストから重複要素を削除
- reverselist.py : リストを逆順にする
- reversestring.py : 文字列を逆順にする
- flattenlist.py : ネストされたリストの平坦化(flatten)
- sortlistkeepindices.py : ソート前のインデックスを保持
- transpose.py : 転置
- copylist.py : リストの浅いコピー、深いコピー
- merge_dict.py : 辞書をマージ
- dictionaryget.py : 辞書にキーが存在しない場合にgetメソッドを使用
- dictdefaultvalue.py : 辞書のデフォルト値
- dictsortbyvalue.py : 辞書を値でソート
- dictswapkeysvalues.py : 辞書のキーと値を交換
- loopoverlappingdicts.py : 2つの辞書で共通のキーを取得
- keydefaultdict.py : defaultdictと関数の組み合わせ
- metatable.py : メタテーブル
- tree.py : defaultdictを使用した木構造
上記リポジトリにあまり知られていない(かもしれない)Pythonのテクニックが49個まとめられていたのでリストや辞書関連を見ていく(その1、その3は下記リンク)。
listtocommaseparated.py : リストをカンマ区切りで出力
join
を使ってリストの要素をカンマ区切りで出力する方法。数値を含む場合はstr
で変換する。
コード
#! /usr/bin/env python3 """converts list to comma separated string""" items = ['foo', 'bar', 'xyz'] print (','.join(items)) """list of numbers to comma separated""" numbers = [2, 3, 5, 10] print (','.join(map(str, numbers))) """list of mix data""" data = [2, 'hello', 3, 3.4] print (','.join(map(str, data)))
実行結果
foo,bar,xyz 2,3,5,10 2,hello,3,3.4続きを読む
Pythonメモ : あまり知られていない(かもしれない)テクニック集 その1
- valueswapping.py : 変数の値を交換
- controlwhitespaces.py : 空白の操作
- concatenatestrings.py : 長い文字列を複数行に分けて書く
- forelse.py : forループのelse文
- whileelse.py : whileループのelse文
- tryelse.py : tryのelse文
- boolasint.py : ブール型を数値として扱う
- rawinputintegers.py : 文字列内の複数の数値を変換
- chainedcomparison.py : 比較の連鎖
- conditionalassignment.py : 条件による代入
- conditionalfunctioncall.py : 条件による関数呼び出し
- stepslice.py : リストの要素を何個置きに取得
- maxsplit.py : splitの分割回数
- exec.py : execの引数に辞書
- argumentunpacking.py : 引数リストのアンパック
- extendediterableunpacking.py : Extended Iterable Unpacking
- setglobalvariables.py : グローバル変数の更新
上記リポジトリにあまり知られていない(かもしれない)Pythonのテクニックが49個まとめられていたので簡単なものから見ていく(その2、その3は下記リンク)。
valueswapping.py : 変数の値を交換
変数の値を入れ替える。一時的な変数は不要。
コード
#! /usr/bin/env python3 """pythonic way of value swapping""" a, b = 5, 10 print(a, b) a, b = b, a print(a, b)
実行結果
5 10 10 5続きを読む
Linuxメモ : topの代わりとして使えそうなコマンド(glances, ctop, gtop, htop, vtop, cpustat)を試してみる
- glances
- インストール
- 使い方
- ctop
- インストール
- 使い方
- gtop
- インストール
- 使い方
- htop
- インストール
- 使い方
- vtop
- インストール
- 使い方
- cpustat
- インストール
- 使い方
GitHubを眺めていたらtopの代わりとして使えそうなコマンドが色々あったので試してみる。
glances
Glances - An Eye on your system(公式ページ)
glancesは色々な情報を表示できるモニタリングツール。
インストール
pipでインストールできるので下記コマンドを実行。
$ pip install glances
Pythonメモ : pygorithmで探索、ソートのアルゴリズムを学ぶ
- pygorithm
- インストール
- 使い方
- その他のアルゴリズムまとめリポジトリ
インストール
pipでインストールできるので下記コマンドを実行。
$ pip install pygorithm
が、少し試したところ最新バージョンではなかったのでGitHubのリポジトリをインストールした。
$ pip install git+https://github.com/OmkarPathak/pygorithm