2つの「0」(str)を含む文字列があり、インデックス4の「0」(str)のみを削除したい
.replaceを呼び出してみましたが、明らかにすべての「0」が削除され、位置4のcharを削除する関数が見つかりません。
誰かが私にヒントを持っていますか?
2つの「0」(str)を含む文字列があり、インデックス4の「0」(str)のみを削除したい
.replaceを呼び出してみましたが、明らかにすべての「0」が削除され、位置4のcharを削除する関数が見つかりません。
誰かが私にヒントを持っていますか?
スライスを使用して、削除するインデックスを除いた文字列を再構築します。
newstr = oldstr[:4] + oldstr[5:]
補足として、replace
すべてゼロを移動する必要はありません。最初の指定を削除するだけの場合は、1に指定しますcount
。
'asd0asd0'.replace('0','',1)
外:
'asdasd0'
これは、任意の文字列 s
と任意のインデックスに対する私の一般的なソリューションi
です。
def remove_at(i, s):
return s[:i] + s[i+1:]
スライスは機能します(そして推奨されるアプローチです)が、より多くの操作が必要な場合の代替手段です(ただし、リストに変換しても問題はありません)。
>>> a = '123456789'
>>> b = bytearray(a)
>>> del b[3]
>>> b
bytearray(b'12356789')
>>> str(b)
'12356789'
リスト内包表記と結合を使用する別のオプション:
''.join([_str[i] for i in xrange(len(_str)) if i != 4])
rem = lambda x, unwanted : ''.join([ c for i, c in enumerate(x) if i != unwanted])
rem('1230004', 4)
'123004'
def remove_char(input_string, index):
first_part = input_string[:index]
second_part = input_string[index+1:]
return first_part + second_part
s = 'aababc'
index = 1
remove_char(s,index)
ゼロベースのインデックス作成
このコードを試してください:
s = input()
a = int(input())
b = s.replace(s[a],'')
print(b)