2017-09-18 2 views
1

、任意のループせずに、文字列内の複数の要素を1つの要素に置き換えるにはどうすればよいですか?私はユニークな要素のリストを持っている場合と仮定ため

list = [.....,'d','c'.....] 

を、それが結果、このようなことを「D」と「」、「B」を交換する方法

list = [.......,'a','b','c',.....] 

私はこれをやってみましたが、うまくいきません。

list[list.index('a'):list.index('b')] = 'd' 

答えて

0

あなたが最初replaceを使用し、その後、リストに参加することができます

l = ["a", "d", "c", "a", "b", "c", "e"] #example list 
new_list = list(''.join(l).replace("abc", "dc")) 

出力:stop位置にある要素を含んでいないl[start:stop]

['a', 'd', 'c', 'd', 'c', 'e'] 
+3

これは1文字の文字列に対して機能しますが、複数文字の文字列や文字列以外のオブジェクトでも機能しますか? – vaultah

+0

@vaultah彼の例でOPが特に単一文字の文字列を使用していて、投稿さえも同じ方法で出力したいので、私は単一文字の文字列のために私の解決策を調整しました。 – Ajax1234

2

スライス。また

In [14]: l = ['a', 'b', 'c', 'e'] 

In [15]: l[l.index('a'):l.index('b') + 1] = 'd', 

In [16]: l 
Out[16]: ['d', 'c', 'e'] 

:変数名として組み込み関数の名前と型を使用して回避しよう

は、あなたのコードは、ほぼ正しいです、あなただけの1list.index('b')に追加する必要があります。

関連する問題