「python」カテゴリーアーカイブ

関数set.difference(_update)の使い方の例

関数の機能:
  集合の差(setAからsetBの全要素を削除した集合)を求める

    setA.difference(setB)
    setA.difference_update(setB)
  
  difference : 
    集合の差を返却
    (setAは変更されない)
  difference_update : 
    関数を呼び出した集合が集合の差に変更される
    (setAが変更される, 返却値はNone)

例1 : 2つの集合の差

>>> set1 = {'A', 'B', 'C'}
>>> set2 = {'B', 'D'}
>>> set1.difference(set2)
{'A', 'C'}
この例では、set1からset2に含まれる要素を削除した集合が関数から返却されています。
この例のイメージを下図に示します。集合の差は図中の青い部分で、この部分の集合が関数から返却されます。
集合の差の説明
なお、関数の呼び出し後にset1の内容を確認すると更新されていないことがわかります。
>>> set1
{'A', 'C', 'B'}
この関数を使う代わりに - 演算子を使用して下記のように記述することもできます。
>>> set1 - set2
{'A', 'C'}
difference_updateを使用した場合は下記のようになります。
>>> set1.difference_update(set2)
>>> set1
{'A', 'C'}

例2 : 3つの集合の差

>>> set1 = {'A', 'B', 'C'}
>>> set2 = {'B', 'D'}
>>> set3 = {'C', 'E'}
>>> set1.difference(set2, set3)
{'A'}
この例では、set1からset2とset3に含まれる要素を削除した集合が関数から返却されています。
- の演算子を使用して下記のように記述することもできます。
>>> set1 - set2 - set3
{'A'}

関連項目

関数set.intersection(_update)の使い方の例
関数set.symmetric_difference(_update)の使い方の例
関数set.union, set.updateの使い方の例

関数set.copyの使い方の例

関数の機能:集合の浅いコピーを作成する

>>> setA = {'A', 'B', 'C'}
>>> setB = setA.copy()
>>> setB
{'C', 'B', 'A'}
copy関数によりsetBという集合が新たに生成されました。
下記のように、setBを変更してもsetAは変化しません。
>>> setB.add('D')
>>> setB
{'D', 'C', 'B', 'A'}
>>> setA
{'C', 'B', 'A'}

関数set.addの使い方の例

関数の機能:集合に要素を追加する

集合内に存在しないものは追加可能

>>> setA = {'A', 'B', 'C'}
>>> setA.add('D')
>>> setA
{'C', 'A', 'D', 'B'}
この例では、3つの要素を持つ集合に1つ要素を追加しています。

集合内に存在するものを追加できない

>>> setA = {'A', 'B', 'C'}
>>> setA.add('A')
>>> setA
{'C', 'A', 'B'}
このように、集合内に存在するものを追加しようとしても要素は増えません。

関連項目

関数set.clearの使い方の例
関数set.discardの使い方の例
関数set.popの使い方の例
関数set.removeの使い方の例

関数str.format_mapの使い方の例

関数の機能:中括弧 { } の位置に値を挿入した文字列を返却(辞書を使って挿入する値を指定)

>>> dic = {'name': 'Yuuta', 'age': 35, 'height': 167}
>>> s = 'My name is {name}, I am {age} years old, and my height is {height} cm.'
>>> s.format_map(dic)
'My name is Yuuta, I am 35 years old, and my height is 167 cm.'
中括弧{}の中に辞書のキー(key)を記入しておくと、中括弧の箇所が辞書の値(value)に置き換えられます。
なお、辞書の中に必要なキー(key)の要素が無いと、下記のようにエラーが発生します。
>>> dic = {'name': 'Yuuta', 'age': 35}
>>> s = 'My name is {name}, I am {age} years old, and my height is {height} cm.'
>>> s.format_map(dic)
Traceback (most recent call last):
...
KeyError: 'height'
関連項目
関数str.formatの使い方の例

関数str.formatの使い方の例

関数の機能:中括弧 { } の位置に変数の値を挿入した文字列を返却

例1 : 位置引数を使用

>>> name = "Yuuta"
>>> age = 35
>>> height = 167
>>> s = 'My name is {}, I am {} years old, and my height is {} cm.'
>>> s.format(name, age, height)
'My name is Yuuta, I am 35 years old, and my height is 167 cm.'
この例では、文字列sに{}が3箇所あり、引数として渡した3つの変数が記入した順序で挿入されています。

例2 : キーワード引数を使用

>>> name = "Yuuta"
>>> age = 35
>>> height = 167
>>> s = 'My name is {n}, I am {a} years old, and my height is {h} cm.'
>>> s.format(h=height, n=name, a=age)
'My name is Yuuta, I am 35 years old, and my height is 167 cm.'
この例では、キーワード引数を使用して3つの変数の値を文字列sの中に挿入しています。キーワード引数を使用すれば記入する順番は気にしなくてよくなります。

例3 : 書式を指定

>>> height = 167.25
>>> s = 'My height is {h:.1f} cm.'
>>> s.format(h = height)
'My height is 167.2 cm.'
この例では、小数点以下1桁まで記入するように書式を指定しています。
関連項目
関数str.format_mapの使い方の例

関数str.replaceの使い方の例

関数の機能:部分文字列を置き換えた文字列を返却

>>> s = 'Hello World!'
>>> s.replace('World', 'Yuuta')
'Hello Yuuta!'
第1引数に置き換え前の文字列を、第2引数に置き換え後の文字列を指定します。この例では、'World'が'Yuuta'に置き換えられています。
部分文字列が複数ある場合は、下記のように全ての部分文字列が置き換えられます。
>>> s = 'old man walking with old dog.'
>>> s.replace('old', 'young')
'young man walking with young dog.'
また、第3引数に置き換え回数の上限を指定することもできます。
下記の例では、置き換え回数の上限を1回としています。
>>> s = 'old man walking with old dog.'
>>> s.replace('old', 'young', 1)
'young man walking with old dog.'
関連項目
関数str.maketrans, str.translateの使い方の例

関数str.removeprefixの使い方の例

関数の機能:接頭を削除した文字列を返却

>>> s = "https://yuuta.tech"
>>> s.removeprefix("https://")
'yuuta.tech'
この例では、'https://'の8文字を接頭文字列として指定しており、文字列sの接頭と一致しているため、この8文字が削除された文字列が返却されています。
指定した文字列が接頭に無い場合には、下記のように元の文字列がそのまま返却されます。
>>> s = "https://yuuta.tech"
>>> s.removeprefix("http://") # 's'の文字が足らない
'https://yuuta.tech'
関連項目
関数str.removesuffixの使い方の例

関数str.removesuffixの使い方の例

関数の機能:末尾を削除した文字列を返却

>>> s = 'yuuta.txt'
>>> s.removesuffix('.txt')
'yuuta'
この例では、'.txt'の4文字を末尾文字列として指定しており、文字列sの末尾と一致しているため、この4文字が削除された文字列が返却されています。
指定した文字列が末尾に無い場合には、下記のように元の文字列がそのまま返却されます。
>>> s = 'yuuta.txt'
>>> s.removesuffix('.csv')
'yuuta.txt'
関連項目
関数str.removeprefixの使い方の例

関数str.partition, str.rpartitionの使い方の例

関数の機能:区切り文字列により3 つの部分に分割したものを返却(区切り文字列が複数ある場合は、partitionでは一番前方の箇所で、rpartitionでは一番後方の箇所で分割されます)

例1 : 区切り文字列が見つかる場合

>>> s = 'This is an example of partition method.'
>>> before, sep, after = s.partition('of')
>>> before
'This is an example '
>>> sep
'of'
>>> after
' partition method.'
この例ではrpartitionを使用しても同じ結果が得られます。

例2 : 区切り文字列が見つからない場合

>>> s = 'This is an example of partition method.'
>>>
>>> ## partitionを使用
>>> before, sep, after = s.partition('and')
>>> before
'This is an example of partition method.'
>>> sep
''
>>> after
''
>>>
>>> ## rpartitionを使用
>>> before, sep, after = s.rpartition('and')
>>> before
''
>>> sep
''
>>> after
'This is an example of partition method.'
区切り文字列が見つからない場合は、元の文字列と2つの空の文字列の3要素のタプルが返却されます。
partitionとrpartitionとでは、元の文字列のタプル内の位置が異なります。

例3 : 区切り文字列が複数見つかる場合

>>> s = 'The iridescent wings of the butterfly shimmered in the sunlight, casting a kaleidoscope of colors on the flowers below.'
>>>
>>> ## partitionを使用
>>> before, sep, after = s.partition('of')
>>> before
'The iridescent wings '
>>> sep
'of'
>>> after
' the butterfly shimmered in the sunlight, casting a kaleidoscope of colors on the flowers below.'
>>>
>>> ## rpartitionを使用
>>> before, sep, after = s.rpartition('of')
>>> before
'The iridescent wings of the butterfly shimmered in the sunlight, casting a kaleidoscope '
>>> sep
'of'
>>> after
' colors on the flowers below.'
関連項目
関数str.partition, str.rpartitionの使い方の例