Remove char at specific index - python

后端 未结 8 1975
清酒与你
清酒与你 2020-12-01 05:48

I have a string that has two \"0\" (str) in it and I want to remove only the \"0\" (str) at index 4

I have tried calling .replace but obviously that removes all \"0\

相关标签:
8条回答
  • 2020-12-01 06:21

    Another option, using list comprehension and join:

    ''.join([_str[i] for i in xrange(len(_str)) if i  != 4])
    
    0 讨论(0)
  • 2020-12-01 06:22
    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)
    ababc
    

    zero-based indexing

    0 讨论(0)
  • 2020-12-01 06:23

    Slicing works (and is the preferred approach), but just an alternative if more operations are needed (but then converting to a list wouldn't hurt anyway):

    >>> a = '123456789'
    >>> b = bytearray(a)
    >>> del b[3]
    >>> b
    bytearray(b'12356789')
    >>> str(b)
    '12356789'
    
    0 讨论(0)
  • 2020-12-01 06:30

    Use slicing, rebuilding the string minus the index you want to remove:

    newstr = oldstr[:4] + oldstr[5:]
    
    0 讨论(0)
  • 2020-12-01 06:31

    This is my generic solution for any string s and any index i:

    def remove_at(i, s):
        return s[:i] + s[i+1:]
    
    0 讨论(0)
  • 2020-12-01 06:33

    as a sidenote, replace doesn't have to move all zeros. If you just want to remove the first specify count to 1:

    'asd0asd0'.replace('0','',1)
    

    Out:

    'asdasd0'

    0 讨论(0)
提交回复
热议问题