2017-09-06 10 views
1

継続しています。TypeError:イテラブルにのみ参加できます。 私はPythonの文字列から特定の文字を削除しようとしています。文字列内の特定の文字を削除する際に問題が発生します。

def get_2s_and_5s_removed(dice_string): 
    dice_string =list(dice_string) 
    if '2' in dice_string: 
     dice_string =dice_string.remove('2') 
     return ''.join(dice_string) 
    if '5' in dice_string: 
     dice_string =dice_string.remove('5') 
     return ''.join(dice_string)** 
+0

あなたは*すべての* 2Sと5Sは名前が示すように削除しますか?あなたのアルゴリズムは、それがうまくいけば、1つ2を削除するでしょう。もう1つ5を削除します。 –

+0

whileループと壊れた文を追加する必要があります – Adrian

答えて

3

Pythonのremove方法は、リスト自体を変更し、元のリストマイナス取り除いた値を含む新しいリストを返しません。それを使用する正しい方法は、dice_string.remove('2')です(つまり、変数にNoneTypeを割り当てるため、等号を使用しないでください)。

+0

ああ、ありがとう情報 – Adrian

3

あなたが本当に必要なのは.replaceである、あなたは関数名が示すようにすべて 2Sと5Sを削除すると仮定:

>>> '11223245565'.replace('2','').replace('5','') 
'11346' 
関連する問題