Ways to slice a string?

后端 未结 6 632
渐次进展
渐次进展 2020-12-01 21:16

I have a string, example:

s = \"this is a string, a\"

Where a \',\' (comma) will always be the 3rd to the last character, aka

相关标签:
6条回答
  • 2020-12-01 22:00

    For deleting every ',' character in the text, you can try

    s = s.split(',')
    >> ["this is a string", " a"]
    s = "".join(s)
    >> "this is a string a"
    

    Or in one line:

    s0 = "".join(s.split(','))
    
    0 讨论(0)
  • 2020-12-01 22:05

    A couple of variants, using the "delete the last comma" rather than "delete third last character" are:

    s[::-1].replace(",","",1)[::-1]
    

    or

    ''.join(s.rsplit(",", 1))
    

    But these are pretty ugly. Slightly better is:

    a, _, b = s.rpartition(",")
    s = a + b
    

    This may be the best approach if you don't know the comma's position (except for last comma in string) and effectively need a "replace from right". However Anurag's answer is more pythonic for the "delete third last character".

    0 讨论(0)
  • 2020-12-01 22:11

    The best simple way is : You can use replace function as :-

    >>> s = 'this is a string, a'
    >>> s = s.replace(',','')
    >>> s
    'this is a string a'
    

    Here, replace() function search the character ',' and replace it by '' i.e. empty character

    Note that , the replace() function defaults all ',' but if you want only replace some ',' in some case you can use : s.replace(',' , '', 1)

    0 讨论(0)
  • 2020-12-01 22:13

    Normally, you would just do:

    s = s[:-3] + s[-2:]
    

    The s[:-3] gives you a string up to, but not including, the comma you want removed ("this is a string") and the s[-2:] gives you another string starting one character beyond that comma (" a").

    Then, joining the two strings together gives you what you were after ("this is a string a").

    0 讨论(0)
  • 2020-12-01 22:17

    To slice a string of arbitrary length into multiple equal length slices of arbitrary length you could do

    def slicer(string, slice_length):
        return [string[i:i + slice_length]
                for i in xrange(0, len(string), slice_length)]
    

    If slice_length does not divide exactly into len(string) then there will be a single slice at the end of the list that holds the remainder.

    0 讨论(0)
  • 2020-12-01 22:22

    Python strings are immutable. This means that you must create at least 1 new string in order to remove the comma, as opposed to editing the string in place in a language like C.

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