結果を保存しなければいけないメソッドとそうでないものの違いについての質問

気になったこと

replace()メソッドを使用していて気が付いたのですが、
例えば

python

1a = ['123','456']2b = '123456123456'3for i in a:4 b.replace(i,"グループ"+str(a.index(i)))5print(b)6# >123456123456

のように書いた場合、bは置き換えられませんが、

python

1a = ['123','456']2b = '123456123456'3for i in a:4 b=b.replace(i,"グループ"+str(a.index(i)))5print(b)6# >グループ0グループ1グループ0グループ1

bに保存するように書くとbが置き換えられます。

しかし例えばappend()では、

python

1a = ['10']2a.append('100')3print(a)4# >['10', '100']

のように、appendした結果をaに代入して保存しなくても、aが変わっています。

聞きたいこと

  • なぜappend()replace()のように結果を代入しなくても良いのか。
  • 結果を代入しなければ結果が変わらないメソッドは、これ以外に何があるか。

補足情報(FW/ツールのバージョンなど)

Python 3.9

コメントを投稿

0 コメント