配列(タプル)を比較する
タプルを比較するためにPythonには、比較演算子を用います。
==、!=:すべての要素が同じかどうか比較する。
<=、<、>、>=:すべての要素の大小を比較する。
is:オブジェクトが同じかどうか比較する。
以下に実際のコードを示します。
以下が実行結果です。
==、!=:すべての要素が同じかどうか比較する。
<=、<、>、>=:すべての要素の大小を比較する。
is:オブジェクトが同じかどうか比較する。
以下に実際のコードを示します。
- #!/usr/bin/env python
- # -*- coding: utf-8 -*-
- a = (10,20,30)
- b = (10,20,30)
- c = (10,20,25)
- #同じかどうか調べます。
- print a == b
- #異なるかどうか調べます。
- print a != b
- #大小を調べます。
- print a >= b #すべて要素が同じなのでTrue
- print a > b #すべて要素が同じなのでFalse
- print a > c #3番目の要素が大きいのでTrue
- #オブジェクトが同一かどうか調べます。
- print id(a),id(b)
- print a is b
- d = a
- print id(a),id(d)
- print a is d
- >>>
- True
- False
- True
- False
- True
- 44841504 31059760
- False
- 44841504 44841504
- True
配列(タプル)に要素を追加する
タプルは変更不可オブジェクトなので、要素を追加するメソッドはありません。
ただし、代入演算子「+=」を用いることによって要素が追加されたようにすることは可能です。
以下が実際のコードです。
以下が実行結果です。
以下が実際のコードです。
- #!/usr/bin/env python
- # -*- coding: utf-8 -*-
- a = (10,30,20,50,0)
- print id(a),a
- #代入演算子でも要素が追加されているように見えるが、実際には、新たなオブジェクトが作成されている。
- a += (90,100)
- print id(a),a
- >>>
- 46445320 (10, 30, 20, 50, 0)
- 46066600 (10, 30, 20, 50, 0, 90, 100)
配列(タプル)の論理積・論理和を求める
組み込み関数のany,allを用いるとタプルの論理和、論理積が求められます。構文は、以下のとおり。
iterableは、リスト等のイテレータです。
以下にコードを記述します。
以下が実行結果です。
- #論理和を求める。
- any(iterable)
- #論理積を求める。
- all(iterable)
以下にコードを記述します。
- #!/usr/bin/env python
- # -*- coding: utf-8 -*-
- a = (True,True,True)
- #論理和を求めます。
- print a,any(a)
- #論理積を求めます。
- print a,all(a)
- a = (True,False,True)
- #論理和を求めます。
- print a,any(a)
- #論理積を求めます。
- print a,all(a)
- a = (1,2,0) #0はFalseとして扱われます。
- #論理和を求めます。
- print a,any(a)
- #論理積を求めます。
- print a,all(a)
- a = ('Hello','Python','String') #空文字はFalseとして扱われます。
- #論理和を求めます。
- print a,any(a)
- #論理積を求めます。
- print a,all(a)
- a = ()
- #論理和を求めます。
- print a,any(a) #空リストはFalseを返します。
- #論理積を求めます。
- print a,all(a) #空リストはTrueを返します。
- >>>
- (True, True, True) True
- (True, True, True) True
- (True, False, True) True
- (True, False, True) False
- (1, 2, 0) True
- (1, 2, 0) False
- ('Hello', 'Python', 'String') True
- ('Hello', 'Python', 'String') True
- () False
- () True
配列(タプル)の要素の和を求める
組み込み関数のsumを用いるとタプルの要素の和を求めることができます。以下が、sumの構文です。
iterableは、リストのようなイテレータです。
以下が、実際のコードです。
以下が実行結果です。
- sum(iterable)
以下が、実際のコードです。
- #!/usr/bin/env python
- # -*- coding: utf-8 -*-
- a = (10,20,20,40,50)
- #和を求めます。
- print a,sum(a)
- #文字の和は求められません。
- a = ('a','b','c','d')
- print a,sum(a)
- (10, 20, 20, 40, 50) 140
- ('a', 'b', 'c', 'd')
- Traceback (most recent call last):
- File "C:\2array_make.py", line 11, in <module>
- print a,sum(a)
- TypeError: unsupported operand type(s) for +: 'int' and 'str'
配列(タプル)の最大・最小を調べる
タプルの最大、最小を調べるのに組み込み関数を利用できます、構文は、以下のとおりです。
iterableには、タプル等のイテレータな変数です。
args...は、複数の変数をカンマ区切りで並べることも可能です。
また、keyには比較関数を入力することが可能で、key=比較関数の形で指定します。
以下に、実際のコードを記載します。
以下は、実行結果です。
- #最大を調べる
- max(iterable[,args...][,key])
- #最小を調べる
- min(iterable[,args...][,key])
args...は、複数の変数をカンマ区切りで並べることも可能です。
また、keyには比較関数を入力することが可能で、key=比較関数の形で指定します。
以下に、実際のコードを記載します。
- #!/usr/bin/env python
- # -*- coding: utf-8 -*-
- a = (10,20,20,40,50)
- #最大を求めます。
- print a,max(a)
- #最小を求めます。
- print a,min(a)
- #文字も比較できます。
- a = ('a','b','c','d')
- print a,max(a)
- #文字列も比較できます。
- a = ('Hello','Python','String')
- print a,max(a)
- #keyは以下のように使います。
- a = (u'10',u'9')
- print a,max(a) #keyを使わないとu'10'<u'9'になる。
- #比較関数でintを用いることにより正しい解が得られます。
- print a,max(a,key=int)
- >>>
- (10, 20, 20, 40, 50) 50
- (10, 20, 20, 40, 50) 10
- ('a', 'b', 'c', 'd') d
- ('Hello', 'Python', 'String') String
- (u'\uff11\uff10', u'\uff19') 9
- (u'\uff11\uff10', u'\uff19') 10