Python 文字列中の各文字の個数の辞書を簡単に作る方法
import collections ransomNote = "afasdgdaasdfsdaaasdfd" rm = collections.Counter(ransomNote) Counter({'a': 7, 'd': 6, 's': 4, 'f': 3, 'g': 1})
Pythonで10進数からn進数に変換する方法
def base10int(value, base): if (int(value / base)): return base10int(int(value / base), base) + str(value % base) return str(value % base)
Pythonでリストを定義するときにメモリの無駄遣いをしない方法
a = [1, 2, 2] b = a a = [1, 2] c = a print(b == c)
これは False になる。3行目のaへの代入で新しいメモリが使われる。
a = [1, 2, 2] b = a a[:] = [1, 2] c = a print(b == c)
これはTrueになる。1行目で定義したaのままである。
boostrapのポップオーバーを、クリックではなくホバーで表示する
triggerを「hober」にしても、ポップオーバーにカーソルを当てようとすると消えてしまうため、例えばそのポップオーバーにボタンを入れたいというときは使えない。
そこでtriggerは「manual」にして、地道にやるしかなかった。
function enableThumbPopover() { var counter; $('.thumbcontainer').popover({ trigger: 'manual', animation: false, html: true, title: function () { return $(this).parent().find('.thumbPopover > .title').html(); }, content: function () { return $(this).parent().find('.thumbPopover > .body').html(); }, container: 'body', placement: 'auto' }).on("mouseenter",function () { var _this = this; // thumbcontainer console.log('thumbcontainer mouseenter') // clear the counter clearTimeout(counter); // Close all other Popovers $('.thumbcontainer').not(_this).popover('hide'); // start new timeout to show popover counter = setTimeout(function(){ if($(_this).is(':hover')) { $(_this).popover("show"); } $(".popover").on("mouseleave", function () { $('.thumbcontainer').popover('hide'); }); }, 400); }).on("mouseleave", function () { var _this = this; setTimeout(function () { if (!$(".popover:hover").length) { if(!$(_this).is(':hover')) // change $(this) to $(_this) { $(_this).popover('hide'); } } }, 200); }); }
アルファベットの変換
こちらのサイトのページを自分用に書き写したものです。
http://www7a.biglobe.ne.jp/~java-master/samples/string/index.html
全角アルファベットを半角アルファベットに変換する
public class ZenkakuAlphabetToHankaku { public static String zenkakuAlphabetToHankaku(String str) { StringBuffer sb = new StringBuffer(str); for (int i = 0; i < sb.length(); i++) { char c = sb.charAt(i); if (c >= 'a' && c <= 'z') { sb.setCharAt(i, (char)(c - 'a' + 'a')); } else if (c >= 'A' && c <= 'Z') { sb.setCharAt(i, (char)(c - 'A' + 'A')); } } return sb.toString(); } public static void main(String[] args) { System.out.println(zenkakuAlphabetToHankaku("☆Javaプログラミング")); } }
①引数にとったString型の変数strにより、StringBufferクラスのインスタンスを生成する。
②左から1文字ずつchar型の変数cに代入していく。
③char型には文字コードが格納されているので大小の比較が可能。変数cの文字コードが全角の'a'から'z'の間にあるか、もしくは全角の'A'から'Z'の間にある場合はそれを半角の文字コードに直したい。そこでcの文字コードからまず全角の’a’または'A'の文字コードを引いたあとに、半角の'a'または'A'の文字コードを足せば、cの文字コードを半角に直したものを得られる。それをint型からchar型に直し、setCharAtメソッドで書き換える。
④最後にtoStringメソッドでString型に直して返す。
pythonの標準ライブラリを知る ~statistics~
以下のデータを使う
data = [1.5, 300, 50, 50.2, 32, 34, 92, 34, 77, 22.23]
1.平均
statistics.mean(data)
69.293
2.中央値
statistics.median(data)
42.0
3.median_low()
これは、データ数が奇数の場合は普通の中央値を返して、偶数の場合には中央の2つの値のうち小さい方を返す。
statistics.median_low(data)
34
4.median_high()
median_lowで大きい方を返すバージョンにしたもの。
statistics.median_high(data)
50
5.分散
statistics.pvariance(data)
6523.026441
5.標準偏差
statistics.pstdev(data)
80.76525515962913
6.不偏分散
statistics.variance(data)
7247.807156666667
7.不偏標準偏差
statistics.stdev(data)
85.13405403636472
pythonの標準ライブラリを知る ~csv~
1.csv.writer()
ファイルオブジェクトを渡すと、それに基づいたcsv.writerオブジェクトを返してくれる。dialectは表現形式の指定なので省略可。**fmtparamsは各種オプションで、lineterminator="\n"とするとWindowsでの余計な空行が入ることを防止できる。
2.csv.writer.writerow(row)
1次元配列を渡してwriterオブジェクトに書き込む。
3.csv.writer.writerows(rows)
2次元配列を渡してwriterオブジェクトに書き込む。
import csv header = ["a", "b", "c"] data = [ [1, 2, 3], [4, 5, 6], [7, 8, 9] ] with open("normal.csv", mode="w", encoding="utf-8") as f: writer = csv.writer(f, lineterminator="\n") writer.writerow(header) writer.writerows(data)
以下のようなcsvファイルが作成された。
a,b,c 1,2,3 4,5,6 7,8,9
4.csv.reader(csvfile, dialect="excel", **fmtparams)
fileオブジェクトを渡すと、それに基づいたcsv.readerオブジェクトが返される。
読み込みは、open関数でcsvfileオブジェクトを取得し、csv.reader()にfileオブジェクトを渡し、readerオブジェクトを取得する。その後はreaderオブジェクトをループにかけて、行ごとのデータを取得する。
import csv with open("normal.csv", mode="r", encoding="utf-8") as f: reader = csv.reader(f) [print(row) for row in reader]
['a', 'b', 'c'] ['1', '2', '3'] ['4', '5', '6'] ['7', '8', '9']