Make it possible with Python.

最近Pythonから離れ気味、その他物作りに寄り気味です。

forループでリストの中身を書き換える方法 Python勉強記録

やりたいこと

リストに含まれる値のうち、条件に適合するものだけを書き換える。

間違った方法

以下のような単純なforループでは実現できない。

line = "sdf2as23d"

chars = list(line)

chars_time =

for char in chars:

    if char == str(2):
        char = 5

手元の本、"初めてのPython" によると、 forループの中で char の部分を書き換えても、それはcharsの要素を書き換えたわけではないと書かれている。 代わりに、以下の方法が望ましい方法として示されていた。

正しい方法

range(len(chars)) で、繰り返し回数を指定して、書き換えたい変数のインデックスを順に辿るforループを回すことで実現できる。

line = "sdf2as23d"

chars = list(line)

for i in range(len(chars)):

    if chars[i] == str(2):
        chars[i] = 5

いつもはwebで軽く検索する方が早く解決できるんだけど、はじめてこの本が役立った。

初めてのPython 第3版

初めてのPython 第3版