前のエントリでset型のメソッドをいくつか書いたけど、どれも元のデータを変更しないメソッドだった。
もちろんもとのデータを変更するメソッドもある。
addとremoveがそれ。
>>> s = set([1,2,3,4,5]) >>> s set([1, 2, 3, 4, 5]) >>> s.add(6) >>> s set([1, 2, 3, 4, 5, 6]) >>> s.remove(3) >>> s set([1, 2, 4, 5, 6])
takatoh's blog – Learning programming languages.
前のエントリでset型のメソッドをいくつか書いたけど、どれも元のデータを変更しないメソッドだった。
もちろんもとのデータを変更するメソッドもある。
addとremoveがそれ。
>>> s = set([1,2,3,4,5]) >>> s set([1, 2, 3, 4, 5]) >>> s.add(6) >>> s set([1, 2, 3, 4, 5, 6]) >>> s.remove(3) >>> s set([1, 2, 4, 5, 6])
Pythonには次の組み込み型がある。
文字列とユニコード文字列の違いはそのうち。リストはRubyで言う配列、辞書はハッシュだと思えばよさそう。タプルはHaskellにもあるタプルだよね。
boolにはTrueとFalseがある。
で、面白いのはsetという型があること。これはちょっと珍しいと思う。少なくともRubyにもPerlにもHaskellにも(標準では)ない。
set型はset()関数で作れる。
>>> s1 = set([1,2,3,4,5]) >>> s2 = set([4,5,6,7,8]) >>> s1 set([1, 2, 3, 4, 5]) >>> s2 set([8, 4, 5, 6, 7])
set型のメソッドをいくつか:
和集合
>>> s1.union(s2) set([1, 2, 3, 4, 5, 6, 7, 8])
共通集合
>>> s1.intersection(s2) set([4, 5])
差集合
>>> s1.difference(s2) set([1, 2, 3])
対照的差集合(どちらか一方に含まれるもの)
>>> s1.symmetric_difference(s2) set([1, 2, 3, 6, 7, 8])
演算子もある:
>>> s1 | s2 set([1, 2, 3, 4, 5, 6, 7, 8]) >>> s1 & s2 set([4, 5]) >>> s1 - s2 set([1, 2, 3]) >>> s1 ^ s2 set([1, 2, 3, 6, 7, 8])
上の操作では、s1、s2そのものは変化しない。
>>> s1 set([1, 2, 3, 4, 5]) >>> s2 set([8, 4, 5, 6, 7])
さて、ブログを書くのはおよそ3年ぶりというわけだけど、別に3年間何もやってなかったわけじゃなくて相変わらずRubyのスクリプトは書いていたし、Javascriptを触ったり、Perlをかじったりしていた。
で、最近はだいぶ前に買った「みんなのPython」(今見たら2006年の初版だった)を引っ張り出してPythonを触っている。バージョンは 2.7.3。そろそろ主流はPython3に移りつつあるのかもしれないけど、さくらインターネットのPythonも2.7.3だし、まぁ古くてもいいよねってことで。
とりあえずは定番のHello, worldから。
print "Hello, world."
実行結果。
^o^ > python hello.py Hello, world.
[amazonjs asin=”479733665X” locale=”JP” title=”みんなのPython”]
はてなダイアリーを3年近くもほったらかしにした末、衝動的にWordPressに移行した。
さくらインターネットのスタンダードに申し込んで、ドメインまでとった。金をかけるからには今度は続けるつもり、なんだけど、続くといいなぁ。
さて、サーバの設定自体はすんなりいった。事前にいくつかブログなど見たけど、実際にやってみるとチョー簡単。WordPressのインストールもさくらのサーバコントロールパネルのクイックインストールからあっという間にできた。参考にしたブログもほとんどいらなかったくらい。
cf. はてなダイアリーからWordPressへの移行手順 ― 科学と生活のイーハトーヴ
ただひとつ、はてなダイアリーのデータを移行するときに、ブログの日付の後のAMとかPMを削除しておかないと日付がおかしくなる、という情報があったので、それだけやっておいた。データをインポートした結果、おおむね大丈夫のようだ。
と思ったら、コードのインデントが全部なくなってる。ひえー、なんてこった。これ全部手で直さなきゃいけないのかなぁ。