2017-01-25 14 views
-4

私はいくつかの重複した単語のリストを持っています。Pythonの重複のリストに特定の重複を1つ置き換える

L = [['I'], ['like'], ['candy'], ['end'], ['do'], ['you'], ['end'], ['okay'], ['end']] 

私がしようとしているのは、リストを短くして最初の['end']の後に終わるようにすることです。私は2番目の['end']のインデックスを見つけてそれを別の単語に置き換えようとしましたが、その単語のインデックスまでリストを印刷するようにプログラムに指示しました。

ので、出力は次のようになります。

L = [['I'], ['like'], ['candy'], ['end'], ['do'], ['you'], ['new_word']] 

どのように私はこれらの重複した言葉の1つを変更できますか?私はstr.replace()メソッドを試して、特定の重複をそのインデックスで参照していますが、それはすべての重複を変更します。私は何をすべきか?これは私の最初の主要なPythonプロジェクトです。私は初心者です。

+0

なぜ[['okay'] 'はあなたの最終リストから消えますか? –

+1

おそらく、pythonチュートリアルの 'list'セクションから始めるでしょうか? (却下しようとしているわけではありませんが、あなたは非常に初歩的な操作にこだわっているようです。 – glibdud

+2

素敵なオンライナーと簡単な質問に答えてもらえますそれからのupvotesの、しかしここでそれはちょうど不明である。 –

答えて

0
def see_two_end(l, stop_word, new_word): 
    count = 0 
    for sublist in l: 
     if sublist[0] == stop_word: 
      count += 1 
     if count > 1: 
      break 
     yield sublist 
    yield [new_word] 

l = [['I'], ['like'], ['candy'], ['end'], ['do'], ['you'], ['end'], ['okay'], ['end']] 

newlist = list(see_two_end(l, 'end', 'new_word')) 
#[['I'], ['like'], ['candy'], ['end'], ['do'], ['you'], ['new_word']] 

簡単see_two_endあなたがperfer場合、リストのリストの代わりに、発電機を返す関数を作ることができます。

関連する問題