読者です 読者をやめる 読者になる 読者になる

はてブロ@ama-ch

https://twitter.com/ama_ch

今日のPython

Program Python

メソッド

p.40

>>> name = "ama-ch"
>>> name.find("ama")
0
>>> name.find("chan")
-1
>>> "ama-ch".find("ama")
0
>>> "ama-ch".find("chan")
-1

文字列の検索をするメソッドfind。 処理対象.メソッド名で実行。
find()の括弧内の文字列が見つかれば0を、なければ-1を返すようだ。みんPyだと見つかった場合1が返ってるんだけど・・・バージョンの違いかな?


p.41

>>> name = "ama-ch"
>>> name.replace("-ch", "chang")
'amachang'
>>> name
'ama-ch'

文字列を置き換えるメソッドreplace()。
実行後に対象変数(str)の中身は変わらないことに注意。内容の変更を伴う操作は全て同じらしい。


p.43

>>> name
'ama-ch'
>>> ord(name[0])
97

キャラクタをキャラクタコードに変換するord()。

>>> ord(name)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: ord() expected a character, but string of length 6 found

キャラクタを指定するので、もちろん文字列に対してはエラー。

ユニコード文字列

p.44

>>> str1 = "abcあいう"     #UTF-8
>>> str2 = u"abcあいう"    #Unicode
>>> len(str1)
12
>>> len(str2)
6

定義のクオーテーションの前に「u」でユニコードになる。ユニコードだと文字を数えるのが楽。

リスト

p.47

>>> a = [1, 2, 3, 4, 5]
>>> a
[1, 2, 3, 4, 5]
>>> a[-1]
5

[-1]で最後の要素を表す。使い勝手よさそう

スライス

p.48

>>> a = [1, 2, 3, 4, 5, 6, 7]
>>> a[0:3]
[1, 2, 3]
>>> a[4:8]
[5, 6, 7]
>>> a[4:-1]
[5, 6]
>>> a[4:0]
[]

a[m:n]で、リストのa[m]からa[n-1]までを取り出すことができる。要素数が0 or 1でもリストとして返ってくる。

>>> a[:3]
[1, 2, 3]
>>> a[3:]
[4, 5, 6, 7]

コロンの左側を省略すると「最初から」,右側を省略すると「最後まで」

リストの連結と繰り返し

p.50

>>> a = [1, 2, 3]
>>> b = [4, 5, 6]
>>> a + b
[1, 2, 3, 4, 5, 6]
>>> a * 2
[1, 2, 3, 1, 2, 3]

要素の削除

p.52

>>> a = [1, 2, 3]
>>> del a[1]
>>> a
[1, 3]

delで要素の削除ができる。こういうのがすぐできる関数があっていいなぁ。LLってこういうもんなんだろうか。

要素の最大・最小

p.52

>>> a = [1, 9, 2, 8, 3, 7, 4, 6, 5]
>>> max(a)
9
>>> min(a)
1

うーむ便利。

ついでにソート・反転

p.53

>>> a.sort()     #昇順にソート
>>> a
[1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> a.reverse()  #リストを反転
>>> a
[9, 8, 7, 6, 5, 4, 3, 2, 1]

リストの追加・連結

p.54

>>> a = [1, 2, 3]
>>> a.append(4)          #要素の追加
>>> a
[1, 2, 3, 4]
>>> a.append([5,6,7])    #リストの追加
>>> a
[1, 2, 3, 4, [5, 6, 7]]  #a[4] == [5, 6, 7]となる
>>> del a[4]             #追加分を削除
>>> a
[1, 2, 3, 4]
>>> a.extend([5, 6, 7])  #リストの連結
>>> a
[1, 2, 3, 4, 5, 6, 7]

a.extend([5, 6, 7])はa += [5, 6, 7]と何が違うんだろう?

辞書を定義する

p.57

>>> a = {"name":"Amano", "nickname":"ama-ch"}
>>> a
{'nickname': 'ama-ch', 'name': 'Amano'}

{"キー":"値"}で、辞書の定義。キーで値を呼び出す。


こんな感じ

>>> a["name"]
'Amano'
>>> a['nickname']
'ama-ch'

文字列の指定はダブルクォーテーションでもシングルクォーテーションでもおk

キーと値を追加

p.59

>>> a['birthyear'] = 1986
>>> a
{'birthyear': 1986, 'nickname': 'ama-ch', 'name': 'Amano'}

要素の削除は、先述のdelでできる

キー一覧の取得

p.60

>>> myinfo = {'birthyear': 1986, 'nickname': 'ama-ch', 'name': 'Amano'}
>>> myinfo.keys()
['birthyear', 'nickname', 'name']

辞書名.keys()でキー一覧の取得

キーの存在を確認

p.61

>>> myinfo.has_key("name")
True
>>> myinfo.has_key("firstname")
False

辞書名.has_key("キー名")で、特定のキーの存在を確認。
結果はbool型で返ってくる。



まだまだ基礎の基礎。