もた日記

くだらないことを真面目にやる

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を使用した木構造

github.com

上記リポジトリにあまり知られていない(かもしれない)Pythonのテクニックが49個まとめられていたのでリストや辞書関連を見ていく(その1は下記リンク)。

wonderwall.hatenablog.com


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 : グローバル変数の更新

github.com

上記リポジトリにあまり知られていない(かもしれない)Pythonのテクニックが49個まとめられていたので簡単なものから見ていく(その2は下記リンク)。

wonderwall.hatenablog.com


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(公式ページ)

github.com

glancesは色々な情報を表示できるモニタリングツール。

インストール

pipでインストールできるので下記コマンドを実行。

$ pip install glances
続きを読む

Pythonメモ : pygorithmで探索、ソートのアルゴリズムを学ぶ

  • pygorithm
  • インストール
  • 使い方
  • その他のアルゴリズムまとめリポジトリ

pygorithm


github.com

pygorithmという探索、ソートなどのアルゴリズムを学ぶためのモジュールがあったので試してみる。

f:id:wonder-wall:20170815230511p:plain

インストール


pipでインストールできるので下記コマンドを実行。

$ pip install pygorithm

が、少し試したところ最新バージョンではなかったのでGitHubのリポジトリをインストールした。

$ pip install git+https://github.com/OmkarPathak/pygorithm
続きを読む

Linuxメモ : icdiffコマンドで横並び、文字単位で差分を表示

  • icdiff
  • インストール
  • 使い方
  • git diffで使う

icdiff


icdiff: side-by-side highlighted command line diffs

github.com

2つのファイルを横並び(サイドバイサイド)で比較する場合、diff -yを使う、vimdiffを使う、WindowsならWinMergeなどのソフトを使う方法があるが、今回はicdiffコマンドを試してみる。
icdiffを使うとコマンドラインで図のように横並び、文字単位で差分を表示することができる。icdiffはImproved Colored Diffの略だと思われる。

f:id:wonder-wall:20170808212122p:plain

続きを読む