第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

 {'春は花'}