tft每日頭條

 > 科技

 > python中字符串切片怎麼用

python中字符串切片怎麼用

科技 更新时间:2024-12-05 05:11:45

在Python中,删除字符串中的空格、空行,tab制表符、行結束符等特殊字符的方法多種多樣,比較靈活。常見的用法有删除字符串開始或末尾的空格,但也可以删除字符串中間的空格、還可以删除tab制表符、回車符等操作。删除不需要的字符,便于比較字符串。衆所周知,excel中使用trim函數删除字符串首尾部的空格,但python中的字符串格式提供了lstrip()、rstrip()和strip()方法,實現類似trim的功能。

删除字符串開頭的空格

python的str 類型提供了一個删除字符串開頭的字符串的函數:str.lstrip,調用這個函數不需要參數,就可以把字符串的開頭的空格删除。

>>>' hello '.lstrip() 'hello '

但是如果隻想删除開頭的第一個空格,可以對該字符串進行切分,代碼如下:

>>> s = ' hello' >>> s = s[1:] >>> s ' hello'

對于不能确定目标字符串的開頭是否有1個以上的空格,就需要先檢查:

>> def strip_first(s: str, ch: str = ' ') -> str: if s and s[0] == ch: return s[1:] return s >>> strip_first('hello') 'hello' >>> strip_first(' hello') ' hello'

删除字符串尾部的空格

python的str 類型提供了 專門的函數:str.rstrip,這個函數可以指定要删除的字符串尾部的字符,如不指定字符,則默認為删除字符串尾部的空格,代碼如下:

>>> ' hello '.rstrip() ' hello' >>> '***hello***'.rstrip('*') '***hello'

如果要求隻删除字符串尾部的最後一個空格或字符,可以采用與上文所說的類似的方法,先要檢查字符串尾部是否有1個以上的空格,代碼如下:

>>> def strip_last(s: str, ch: str = ' ') -> str: if s and s[-1] == ch: return s[:-1] return s >>> strip_last('hello') 'hello' >>> strip_last('hello ') 'hello' >>> strip_last('') ''

删除字符串中所有的空格或指定的字符

可以用 str.strip 函數删除指定字符串中所有的空格或指定的字符,不僅包括開頭或末尾的空格,也包括字符串中間的空格。strip()函數不指定參數,則默認為空格;strip('*'),則删除字符串中的 ‘*’ ,代碼如下:

>>> ' hello '.strip() 'hello' >>> '***hello***'.strip('*') 'hello'

删除空行

可以利用 strip() 函數可以指定要删除的字符這一特點,指定要删除的字符為 “\n” ,即可删除一段字符串文字中的空行,操作如下:

>>> s = """ ... ... ... hello ... ... ... """ >>> s '\n\n\n hello\n\n\n' >>> s.strip('\n') ' hello'

删除回車符

用strip函數删除字符串中的軟回車符('\r')或硬回車符('\n'), 兩者連接在一起 ‘\r\n’ 就形成新的一行,删除這樣的行,就要删除回車符,操作如下:

>>> s = " hello world\r\n\r\n" >>> print(s) hello world >>> s.strip('\r\n') ' hello world'

删除制表符tab

python中删除字符串中的制表符tab,使用str.strip('\t')即可,操作如下:

>>> s = "\t\t\t hello world \t" >>> s '\t\t\t hello world \t' >>> print(s) hello world >>> s.strip('\t') ' hello world '

删除字符串中某種字符組合

上文中,好幾處地方都在使用str.strip()函數時指定了參數,該參數可以是單個的字符,也可以是多個字符,利用這一點,就可以使用該函數删除指定字符串中的某些字符串組合,示例如下:

>>> s = " \ns hello world \n s" >>> s ' \ns hello world \n s' >>> print(s) s hello world s >>> s.strip('\n s') 'hello world'

删除字符串中多個空格

有時候需要删除一句或一段文字中多餘或重複的空格,單詞之間隻保留一個空格,這樣文字就比較規範,示例如下:

>>> import re >>> s = " Python is really a great language. " >>> re.sub("\s " , " ", s) ' Python is really a great language. '

以上方法使用正則函數re.sub(), 把連續空格超過3個以上的片段字符,隻保留1個空格。

還可以用split()函數先把字符串切分,再用join()函數連接,示例如下:

>>> s = " Python is really a great language. " >>> " ".join(s.split()) 'Python is really a great language.' >>> # This is the same as using regex then stripping the whitespaces >>> re.sub("\s " , " ", s).strip() 'Python is really a great language.'

删除字符串列表的元素中的空格或特殊字符

與删除一個字符串中的空格或特殊字符的方法一樣,隻需要做叠代操作,示例如下:

>>> lst = ["string1\n", "string2\n", "string3\n"] >>> [s.strip('\n') for s in lst] ['string1', 'string2', 'string3']

删除字符串數組的元素中的空格或特殊字符

numpy工具包中不僅有.lstrip, .rstrip, .replace這樣的字符串操作函數,而且還有更多的其他字符串操作函數,但是這與python内置的方法還是有點差别,numpy中使用nump.char函數模塊,因此其參數必須是向量化的數組或字符的列表。用法示例如下:

>>> import numpy as np >>> arr = np.array([' helloworld ', ' hello']) array([' helloworld ', ' hello'], dtype='<U7') >>> np.char.strip(arr, ' ') array(['helloworld', 'hello'], dtype='<U7')

(本文完)

python中字符串切片怎麼用(python技巧-類似Excel中Trim字符串的方法)1

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关科技资讯推荐

热门科技资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved