2016-04-08 12 views
0

文字列 'IIXIIXIIXIIX'を使用して、ユーザーが別の文字列で置き換えたい部分文字列 'x'を入力できるようにするプログラムを作成するにはどうすればよいですか?ユーザーがPythonで部分文字列を選択する

したがって、ユーザーが1を入力すると、最初のxなどになります。基本的にユーザー入力を文字列の位置に関連付ける方法はありますか。これまでのところ、私は

string = 'IIXIIXIIXIIX' 
substring = 'X' 
ss = input("Which substring would you like to replace: ") 
if ss == '1': 
    string = string.replace('X', 'Y') 
    print(string) 

を持っている、これは単に「Y」を持つすべての「X」を置き換えますが、私は、ユーザー入力に基づいて個々の「X」を置き換えるために探しています。どうすればこのことができますか?

+0

私はstring.findとstring.indexで "しよう"としましたが、ユーザ入力をサブストリングのインデックス位置に関連付ける方法がわかりません – discord1

+0

文字列の実際のフォーマットは 'IIXIIXIIXIIX 'それともxの間にあるランダムな文字の例ですか? – Keatinge

+1

文字列を 'X'で分割し、' join'と一緒にステッチして、インデックスの1つだけを置き換えることが考えられます。 – roadrunner66

答えて

0

間違いなく最もエレガントではないが、これは動作するようです:

string1 = 'IIXIIXIIXIIX' 
substring = 'X' 
replacement='B' 
ss = input("Which substring would you like to replace: ") 
list1= string1.split(substring) 
print substring.join(list1[:ss])+replacement+substring.join(list1[ss:]) 

出力:

Which substring would you like to replace: 3 
IIXIIXIIBIIX 

あなたはまだ適切に位置0のようなエッジケースを処理する必要があり、番号を過ぎて行くと思います部分文字列の出現回数。

+0

いいね、ありがとう。あなたは私に何かreplを教えてください。私はかつてそれを見たことがないし、Googleは私を助けなかった。 – discord1

+0

これは、xをどの文字に置き換えたいのかを示す変数です。その例では文字B – Keatinge

+0

良い点は、変数 'replacement'を意味しましたが、' repl'は他の意味を持ちます。修正されます。 – roadrunner66