2

私はPythonの基本的な問題に苦しんでいます。文字列を変更するには、特定の位置で文字列を読み取る必要があります。

例: 文字列'abcd'の場合、3 番目の位置 (0 から開始するため 2 番目) を読み取り、それをアルファベットの次の文字 に変更し'abdd'ます。ただし、文字列がたまたまだった場合は、など'abrd'に変更する'absd'必要があります。そのため、特定の位置で読み取りと書き込みを行い、他のすべてをそのままにしておく必要があります。世界で最も簡単なことのはずですが、その方法がわかりません。

4

2 に答える 2

2

本質的に、あなたの質問に対する答えは簡単です:リストスライス構文を使用してください:

>>> string='abcd'
>>> print string[:2] + 'd' + string[3:]
abdd

文字列の序数値をインクリメントするだけで安全であると想定できる場合は、次のようにすることができます。

>>> string='abrd'
>>> string=string[:2] + chr(ord(string[2]) + 1) + string[3:]

あなたの質問では指定されていないので、それが必要だと思います。'z' から 'a' にループしたい場合、または異なる大文字と小文字または Unicode 文字セットを特別に処理したい場合は、大まかなパッチを見つけることができます。

を単にインクリメントするよりも複雑な問題がある場合は、変換テーブルordの使用を検討してください。

于 2013-04-15T00:27:12.570 に答える
1

@kojiroの回答は別として。それを行う別の方法は、文字列リストに切り替えて結合し直すことです。例えば:

S = 'abcd'
// Convert to list
L = list(S)
// Change 3rd position
L[3] = 'd'
// Join it back and print
print ''.join(L)

ただし、別の文字を置き換える必要がある場合は、辞書マッピングを定義して変換プロセスを容易にすることができます。例えば:

// Define {a -> x} mapping.
M = {'c': 'd', 'r': 's'}
// Substitution
L[3] = M[L[3]]
于 2013-04-15T00:34:58.040 に答える