第10章タプル 20131120改訂中
「語ること」、それは隣人に近づくこと、「意味生成」を贈ること。 (レビナス)
リストと同じ性格で要素を順番に並べて管理する。要素の変更が できない点でリストと異なる。文字列と同じ。()の中に入れる。こ の性格をimutableという。 タプルを包むカッコは見やすくするためで、なくてもよい。 カンマがタプルを作る。(a,) 要素の変更を求めない限り、リストのように扱うことができる。 タプルを必要とする理由:マッピング、セットのキーとして必要 。 インデクスを指定するには角カッコを使う。 インデックスを使って要素を管理する。 タプルどうしの足し算はできる。 変化しないタプルを辞書のキーとして使いデータの存否を判 断する等に使える。 要素の型を選ばず、どんなオブジェクトでも格納できる >>> t1 ('所得税', '法人税', '相続税') >>> t2=("どれか","一科目を選びなさい") タプルどうしの加算 >>> t=t1+t2
>>> t ('所得税', '法人税', '相続税', 'どれか', '一科目を選びなさい') >>> type(t2) <class 'tuple'>
>>> t=(123,456,789) >>> t2=(10,11,12) >>> t3=t+t2 >>> t3 (123, 456, 789, 10, 11, 12) >>> t=(”所得税”,”法人税”,”相続税”)
>>> t[1] インデクスでアクセスする。
’法人税’
>>> tf[0]
’所得税’
divemod(x、y) 商と余りを求める組み込み関数 >>> divmod(10,3)
(3, 1) 商の結果と余り
>>> a,b = divmod(10,3) >>> a
3
>>> b
1
>>> tuple([1,2,3])
(1, 2, 3)
>>> tuple('春は花')
('春', 'は', '花')
>>> ()
() 空のタプル
>>> 1
1 タプルではない
>>> s="春 ",
>>> print(s) ('春 ',) >>> s ('春 ',)
>>> 1, コンマをつけるとタプルになる。
(1,)
>>> '春,花,月' '春,花,月'
>>> ('春,花,月')
'春,花,月'
>>> s = ('春','花','月')
('春', '花', '月')
>>> s =('春','花','月',) >>> s
('春', '花', '月')
>>> t=(1,2,3,4,5)
>>> t
(1, 2, 3, 4, 5)
>>> type(t)
<class 'tuple'>
>>> t[1]
2
>>> t[2:4] インデックス2から4未満の要素を表示する。
(3, 4)
>>> t[4]='four' 要素を変更しようとする
Traceback (most recent call last): File "<pyshell#10>", line 1, in <module> t[4]='four' TypeError: 'tuple' object does not support item assignment
>>> t=(1,2,3,4,5)
>>> t2=t+(50,51,52) 足し算で別の文字列(コピー)をつくることは できる。
>>> t2
(1, 2, 3, 4, 5, 50, 51, 52)
>>> type(x) 型チエックをする
>>>> x=(1) >>> type(x) <class 'int'> >>> x=(1,) >>> type(x) <class 'tuple'>
>>> (a,b)=(1,2) >>> a
1
>>> b
2
>>> a,b = 1,2 >>> a
1 >>> b
2
>>> t=3.142,"hello" タプルパッキングの例(梱包) >>> t[0] 3.142
>>> t
(3.142, 'hello')
>>> u=t,(1,2,3,4,5) >>> u
((3.142, 'hello'), (1, 2, 3, 4, 5))
>>> empty= () 空のタプル >>> s='hello', 区切りカンマをつけて、タプルを表現 >>> len(empty)
0
>>> len(singleton)
1
>>> singleton
('hello',)
>>> t=12345,54321,'hello' シーケンス・アンパック(開梱) >>> x,y,z=t >>> x
12345 >>> y
54321
>>> z ' hello'
例:タプルをキーとしドメイン名を値として返す辞書をつくる
(b)買い物タプル
a ={'aji':80,'imo':60,'ika':260} < 値段表辞書 >>> 'aji'*3 'ajiajiaji'
>>> a['aji'] < 値段の出力(値の出力)
80
>>> a['aji']*3 >>> print a['aji']*3
240
>>> print a['imo']*5
300
>>> print (a['ika']*6) < 買い物の金額〔値*数量)
1560
>>> a1=a['aji']*3 < 買い物種類別に計算
>>> a2=a['imo']*6 >>> a3=a['ika']*3 >>> print 'total =',a1+a2+a3 < 買い物合計出力
total = 1380
(c)boolean
>>> dict = {} # 中カッコで初期化する >>> dict ['boolean'] = "真または偽の値 # 角カッコ # で値を代入する >>> dict ['integer'] = "整数値" >>> print dict['boolean'] # 角カッコで値を読み取る
真または偽の値
タプルの重要な応用は任意個の引数を持つ関数の定義である。関数定義 文の中の変数はタプルであり、関数を呼びだす時にはタプルで指定された 位置には任意個の引数を書く事が可能である。次にその事を示す簡単な 例を挙げる。
def f(x,y): print (x+y)
>>> f(5,7)
12
>>> s = '春は花' >>> s1 = list(s) >>> s1
['春', 'は', '花']
>>> s2 = tuple(s) >>> s2
('春', 'は', '花')
>>> s3={s} >>> s3
{'春は花'}
|