Differences between revisions 2 and 3
Revision 2 as of 2018-09-28 13:25:29
Size: 1631
Comment:
Revision 3 as of 2018-09-30 23:41:19
Size: 3524
Comment:
Deletions are marked like this. Additions are marked like this.
Line 9: Line 9:
== データ型:列:タプル == == タプル型と値 ==
<<Anchor(tuple)>><<Action(edit)>>
Line 11: Line 12:
=== タプル(tuple) ===
 ||<-3> ||変更不能<<BR>>イミュータブル<<BR>>(immutable)||変更可能<<BR>>ミュータブル<<BR>>(mutable)||
 ||<|1>文字列 ||<|1>テキスト列型 ||str型 ||<|1>〇 || ||
 ||<|3>列 ||<|1>リスト型 ||list型 || ||<|1>〇 ||
 ||<|1> タプル型 ||tuple型 ||<|1>〇 || ||
 ||<|1> range型 ||range型 ||<|1>〇 || ||



=== タプル(tuple)型のデータ・リテラル ===
Line 22: Line 32:
{{{#!highlight python

a = (10, 20, 30, 40)
{{{
>>> 1,2
(1, 2)
Line 28: Line 37:
{{{#!highlight python
Line 30: Line 38:
x = (10) # 数値の10
x = (10,) # タプルの(10,)
x = 10, # タプルの(10,)
{{{
>>> 1,2
(1, 2)
Line 34: Line 42:
>>> (1)
1

>>> ()
()

>>> type( (1) )
<class 'int'>

>>> type( () )
<class 'tuple'>

>>> type( (1,2) )
<class 'tuple'>

>>> type( (1,) )
<class 'tuple'>
}}}

{{{
>>> (x,y)= divmod( 99, 5 )

>>> x
19

>>> y
4
}}}

==== タプルの生成 ====

 * 生成子(コンストラクタ)
  * tuple()もしくはtuple(iterable)で生成できる.

{{{
>>> tuple()
()
}}}

{{{
>>> x = tuple( range( 2,8,2 ) )

>>> x
(2, 4, 6)

>>> type( x )
<class 'tuple'>
Line 40: Line 95:
{{{#!highlight python {{{
>>> data_list = ["a","b","c","d","e"]
>>> data_list[3]
'd'
>>> data_list[3] = "x"
>>> data_list
['a', 'b', 'c', 'x', 'e']
}}}
Line 42: Line 104:
data_list__1 = [10, 20, 30, 40]
data_Tuple_2 = (10, 20, 30, 40)
Line 45: Line 105:
data_list__1[2] = 60 # 代入できる
data_Tuple_2[2] = 60 # エラー: TypeError例外が発生する
{{{
>>> data_tuple = ("a","b","c","d","e")
>>> data_tuple[3]
'd'
>>> data_tuple[3] = "x"
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment
>>> data_tuple
('a', 'b', 'c', 'd', 'e')
Line 55: Line 122:
{{{#!highlight python  * タプルからリストに変換する
Line 57: Line 124:
print list([1, 2, 3]) #=> (1, 2, 3)
print tuple((1, 2, 3)) #=> [1, 2, 3]
{{{
>>> x = list( ("a","b","c","d","e") )
Line 60: Line 127:
>>> x
['a', 'b', 'c', 'd', 'e']

>>> type( x )
<class 'list'>
Line 61: Line 133:

 * タプルからリストに変換する
  * 入れ子になっていても,再帰的に変換せず,いちばん外側のみ変換する

{{{
>>> x = list( ("a","b",("c","d"),"e") )

>>> x
['a', 'b', ('c', 'd'), 'e']

>>> type( x )
<class 'list'>
}}}

 * リストからタプルに変換する

{{{
>>> x = tuple( ["a","b","c","d","e"] )

>>> type( x )
<class 'tuple'>
}}}

 * リストからタプルに変換する
  * 入れ子になっていても,再帰的に変換せず,いちばん外側のみ変換する

{{{
>>> x = tuple( ["a",["b","c"],"d","e"] )

>>> x
('a', ['b', 'c'], 'd', 'e')

>>> type( x )
<class 'tuple'>
}}}


タプル型と値

edit

  • 変更不能
    イミュータブル
    (immutable)

    変更可能
    ミュータブル
    (mutable)

    文字列

    テキスト列型

    str型

    リスト型

    list型

    タプル型

    tuple型

    range型

    range型

タプル(tuple)型のデータ・リテラル

タプルの生成

  • (..., ..., ...) で要素を並べたもの
    • リストと異なり,要素を変更できない(イミュータブル)
    • 要素がひとつだけの時は、最後にカンマ(,)を記述する必要がある
      • 実は,タプルを形成しているのは丸括弧ではなく,カンマの方
    • 空のタプル()
    • tuple()もしくはtuple(iterable)で生成できる.

>>> 1,2
(1, 2)

>>> 1,2
(1, 2)

>>> (1)
1

>>> ()
()

>>> type( (1) )
<class 'int'>

>>> type( () )
<class 'tuple'>

>>> type( (1,2) )
<class 'tuple'>

>>> type( (1,) )
<class 'tuple'>

>>> (x,y)= divmod( 99, 5 )

>>> x
19

>>> y
4

タプルの生成

  • 生成子(コンストラクタ)
    • tuple()もしくはtuple(iterable)で生成できる.

>>> tuple()
()

>>> x = tuple( range( 2,8,2 ) )

>>> x
(2, 4, 6)

>>> type( x )
<class 'tuple'>

タプルは要素を変更できない(イミュータブル)

  • リスト要素は変更可能だが,タプル要素は変更できない.

>>> data_list  = ["a","b","c","d","e"]
>>> data_list[3]
'd'
>>> data_list[3] = "x"
>>> data_list
['a', 'b', 'c', 'x', 'e']

>>> data_tuple  = ("a","b","c","d","e")
>>> data_tuple[3]
'd'
>>> data_tuple[3] = "x"
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment
>>> data_tuple
('a', 'b', 'c', 'd', 'e')

リストとの相互変換

  • タプルからリストに変換する

    list()

    リストからタプルに変換する

    tuple()

  • タプルからリストに変換する

>>> x = list( ("a","b","c","d","e") )

>>> x
['a', 'b', 'c', 'd', 'e']

>>> type( x )
<class 'list'>
  • タプルからリストに変換する
    • 入れ子になっていても,再帰的に変換せず,いちばん外側のみ変換する

>>> x = list( ("a","b",("c","d"),"e") )

>>> x
['a', 'b', ('c', 'd'), 'e']

>>> type( x )
<class 'list'>
  • リストからタプルに変換する

>>> x = tuple( ["a","b","c","d","e"] )

>>> type( x )
<class 'tuple'>
  • リストからタプルに変換する
    • 入れ子になっていても,再帰的に変換せず,いちばん外側のみ変換する

>>> x = tuple( ["a",["b","c"],"d","e"] )

>>> x
('a', ['b', 'c'], 'd', 'e')

>>> type( x )
<class 'tuple'>

SoftEng: Python/Lang/DataType/Sequence/Tuple/Contents (last edited 2018-10-01 23:50:22 by TadashiIijima)