リストの要素の文字列が特定の文字で始まるときにその特定の文字を除去する方法

   

pythonで語句のリストがあったとき、特定の文字で始まる語句に関してその特定の文字を除去したいことがありあす。例えば、一部の語句はTheで始まるpythonのリスト [‘The pen’,’desk’, ‘The ink’]の場合に、どうやってこの中のTheを除去すればよいでしょうか。

以下のコードで実現できました。

# リストの要素の文字列がTheで始まる場合はそれを除去する

list = ['The pen','desk', 'The ink']
new_list = []

for element in list:
if element.startswith('The '):
sub0,sub1 = i.split('The ',1)
new_list = new_list+[sub1]
else:
new_list = new_list+[i]

print(list)
print(new_list)
 

動作の説明ですが、新しいリストを準備しておきます。

new_list = []

forループでリスト内の要素を一つずつチェック。’The ‘で始まる場合とそうでない場合で処理を分けます。’The ‘で始まる文字列に関しては、’The ‘の前後に分割。前は何もないのでカラの文字列になります(sub0)。後ろが自分が欲しい文字列(sub1)。sub1はストリングのデータタイプはストリングなので[]でリストにしてから、+という演算子でリスト同士を合わせます。上のコードを実行した結果は、

['The pen', 'desk', 'The ink']
['ink', 'The ink', 'ink']

で、うまく期待した動作をしてくれました。

註:このブログの記事内では、インデントがなくなってしまっています。forループの中身にはインデントが必要。さらにその中のif文およびelse文の中身もインデントが必要です。


 - Python, プログラミング, Pythonプログラミング, Python勉強ノート