やりたいこと
リストに含まれる値のうち、条件に適合するものだけを書き換える。
間違った方法
以下のような単純な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で軽く検索する方が早く解決できるんだけど、はじめてこの本が役立った。

- 作者: Mark Lutz,夏目大
- 出版社/メーカー: オライリージャパン
- 発売日: 2009/02/26
- メディア: 大型本
- 購入: 12人 クリック: 423回
- この商品を含むブログ (127件) を見る