這是本人在學習python過程中總結的一些關于字元串的常用的方法.
文中引用了python3.5版本内置的幫助文檔,大緻進行翻譯,并添加了幾個小實驗.
isalnum
S.isalnum() -> bool #字元串裡所有的字元都是字母或者數字時傳回True,否則傳回False
Return True if all characters in S are alphanumeric and there is
at least one character in S, False otherwise.
>>> str1="hello world"
>>> str2="hello555 world"
>>> str3="66666"
>>> str4="hello"
>>> str1.isalnum()
False
>>> str2.isalnum()
False
>>> str3.isalnum()
True
>>> str4.isalnum()
True
isalpha
S.isalpha() -> bool #字元串裡所有的字元都是字母時傳回True,否則傳回False
Return True if all characters in S are alphabetic and there is
>>> str1="hello world"
>>> str2="hello555 world"
>>> str3="66666"
>>> str4="hello"
>>> str1.isalpha()
False
>>> str2.isalpha()
False
>>> str3.isalpha()
False
>>> str4.isalpha()
True
isdigit
S.isdigit() -> bool #字元串裡所有字元都是數字則傳回True,否則傳回False
Return True if all characters in S are digits and there is at
least one character in S, False otherwise.
>>> str1="hello world"
>>> str2="hello555 world"
>>> str3="66666"
>>> str1.isdigit()
False
>>> str2.isdigit()
False
>>> str3.isdigit()
True
islower
S.islower() -> bool #字元串所有的字元都是小寫字母時傳回True,否則傳回False
Return True if all cased characters in S are lowercase and there is
at least one cased character in S, False otherwise.
>>> str1="hello world"
>>> str2="66666"
>>> str3="HELLO WORLD"
>>> str1.islower()
True
>>> str2.islower()
False
>>> str3.islower()
False
istitle
S.istitle() -> bool #每個單詞的首字母大寫時傳回True,否則傳回False
Return True if S is a titlecased string and there is at least one
character in S, i.e. upper- and titlecase characters may only
follow uncased characters and lowercase characters only cased ones.
Return False otherwise.
>>> str1="hello world"
>>> str2="Hello World"
>>> str3="HELLO WORLD"
>>> str1.istitle()
False
>>> str2.istitle()
True
>>> str3.istitle()
False
isupper
S.isupper() -> bool #字元串裡所有的字元都是大寫字母時傳回True,否則傳回False
Return True if all cased characters in S are uppercase and there is
>>> str1="hello world"
>>> str2="66666"
>>> str3="HELLO WORLD"
>>> str1.isupper()
False
>>> str2.isupper()
False
>>> str3.isupper()
True
lower
S.lower() -> str #把字元串裡所有的字元都轉換為小寫字母
Return a copy of the string S converted to lowercase.
>>> str3="HELLO WORLD"
>>> str3.lower()
'hello world'
upper
S.upper() -> str #把字元串裡所有的字元都轉換為大寫字母
Return a copy of S converted to uppercase.
>>> str1="hello world"
>>> str1.upper()
'HELLO WORLD'
strip
S.strip([chars]) -> str #去除字元串裡的空格
Return a copy of the string S with leading and trailing whitespace removed.
If chars is given and not None, remove characters in chars instead.
>>> str1=" hello world "
>>> str2="hello world "
>>> str1.strip()
'hello world'
>>> str2.strip()
'hello world'
isspace
S.isspace() -> bool #字元串裡所有的字元都為空格時傳回True,否則傳回False
Return True if all characters in S are whitespace
and there is at least one character in S, False otherwise.
>>> str1=" "
>>> str2="hello world"
>>> str1.isspace()
True
>>> str2.isspace()
False
replace
S.replace(old, new[, count]) -> str #把字元串裡指定的字元替換成新的字元
Return a copy of S with all occurrences of substring
old replaced by new. If the optional argument count is
given, only the first count occurrences are replaced.
>>> str1="hello world"
>>> str1.replace("l","L")
'heLLo worLd'
>>> str2="abababababababab"
>>> str2.replace("a","c")
'cbcbcbcbcbcbcbcb'
index
S.index(sub[, start[, end]]) -> int #傳回字元串裡的子字元串的索引
Like S.find() but raise ValueError when the substring is not found.
>>> str1="abcdefg"
>>> str1.index("a")
0
>>> str1.index("f")
5
find
S.find(sub[, start[, end]]) -> int #在字元串裡查找指定的子串,未找到時傳回-1,找到則傳回子串在字元串中的索引值
Return the lowest index in S where substring sub is found,
such that sub is contained within S[start:end]. Optional
arguments start and end are interpreted as in slice notation.
Return -1 on failure.
>>> str1="abcdefg"
>>> str2="ababab"
>>> str1.find("bc")
1
>>> str2.find("b")
1
>>> str1.find("f")
5
split
S.split(sep=None, maxsplit=-1) -> list of strings #根據指定的符号分隔字元串
Return a list of the words in S, using sep as the
delimiter string. If maxsplit is given, at most maxsplit
splits are done. If sep is not specified or is None, any
whitespace string is a separator and empty strings are
removed from the result.
>>> str1="/etc/sysconfig/selinux"
>>> str1.split("/")
['', 'etc', 'sysconfig', 'selinux']
>>> str2="abc|mnt|xyz"
>>> str2.split("|")
['abc', 'mnt', 'xyz']
startswith
S.startswith(prefix[, start[, end]]) -> bool #字元串以指定的字元開頭時傳回True,否則傳回False
Return True if S starts with the specified prefix, False otherwise.
With optional start, test S beginning at that position.
With optional end, stop comparing S at that position.
prefix can also be a tuple of strings to try.
>>> str1="hello world"
>>> str2="abcdefg"
>>> str1.startswith("hello")
True
>>> str2.startswith("abc")
True
endswith
S.endswith(suffix[, start[, end]]) -> bool #字元串以指定的字元結尾時傳回True,否則傳回False
Return True if S ends with the specified suffix, False otherwise.
suffix can also be a tuple of strings to try.
>>> str1="hello world"
>>> str2="abcdefg"
>>> str1.startswith("hello")
True
>>> str2.startswith("abc")
True
>>> str1.endswith("ld")
True
>>> str2.endswith("fg")
True
lstrip
S.lstrip([chars]) -> str #僅去除字元串左邊的空格
Return a copy of the string S with leading whitespace removed.
>>> str1=" hello world "
>>> str2=" hello world"
>>> str3="hello world "
>>> str1.lstrip()
'hello world '
>>> str2.lstrip()
'hello world'
>>> str3.lstrip()
'hello world '
rstrip
S.rstrip([chars]) -> str #僅去除字元串右邊的空格
Return a copy of the string S with trailing whitespace removed.
>>> str1=" hello world "
>>> str2=" hello world"
>>> str3="hello world "
>>> str1.rstrip()
' hello world'
>>> str2.rstrip()
' hello world'
>>> str3.rstrip()
'hello world'
rfind
S.rfind(sub[, start[, end]]) -> int #傳回子串在字元串中的索引值
Return the highest index in S where substring sub is found,
>>> str1="hello world"
>>> str2="abcdefg"
>>> str1.rfind("world")
6
>>> str1.rfind("r")
8
>>> str2.rfind("e")
4
>>> str2.rfind("g")
6
format
S.format(*args, **kwargs) -> str #格式化輸出指定的字元串
Return a formatted version of S, using substitutions from args and kwargs.
The substitutions are identified by braces ('{' and '}').
>>> print("{name}======>{age}".format(name="tom",age=22))
tom=========>22
>>> print("{name}======>{age}".format(age=22,name="tom"))
tom=========>22
swapcase
S.swapcase() -> str #把字元串中的小寫字母變成大寫,大寫字母變成小寫
Return a copy of S with uppercase characters converted to lowercase
and vice versa.
>>> str1="HELLO world"
>>> str1.swapcase()
'hello WORLD'
>>> str2="hello WORLD"
>>> str2.swapcase()
'HELLO world'
title
S.title() -> str #把字元串中的每個單詞變成大寫字母開頭
Return a titlecased version of S, i.e. words start with title case
characters, all remaining cased characters have lower case.
>>> str1="hello world"
>>> str1.title()
'Hello World'
>>> str2="this is a test string"
>>> str2.title()
'This Is A Test String'
join
S.join(iterable) -> str #把字元串混合插入到一個疊代器中
Return a string which is the concatenation of the strings in the
iterable. The separator between elements is S.
>>> str1="abcd"
>>> str2="xyz"
>>> str1.join(str2)
'xabcdyabcdz'
capitalize
S.capitalize() -> str #把字元串中的首字母變成大寫
Return a capitalized version of S, i.e. make the first character
have upper case and the rest lower case.
>>> str1="hello world"
>>> str1.capitalize()
'Hello world'
>>> str1="linux"
>>> str1.capitalize()
'Linux'
center
S.center(width[, fillchar]) -> str #擴充字元串到指定長度,不夠則用第二個參數的字元填充,預設為空格
Return S centered in a string of length width. Padding is
done using the specified fill character (default is a space)
>>> str1="hello world"
>>> str1.center(30,"#")
'############linux#############'
>>> str2="linux"
>>> str2.center(16,"*")
'*****linux******'
count
S.count(sub[, start[, end]]) -> int #判斷子串在字元串中出現的次數
Return the number of non-overlapping occurrences of substring sub in
string S[start:end]. Optional arguments start and end are
interpreted as in slice notation.
>>> str1="hello world"
>>> str1.count("l")
3
>>> str2="aaaaaaaaaaaa"
>>> str2.count("a")
12
ljust
S.ljust(width[, fillchar]) -> str #擴充字元串到指定長度,不足則由第二個參數從右邊填充,預設為空格
Return S left-justified in a Unicode string of length width. Padding is
done using the specified fill character (default is a space).
>>> str1="hello world"
>>> str1.ljust(20,"@")
'hello world@@@@@@@@@'
>>> str2="linux"
>>> str2.ljust(18,"&")
'linux&&&&&&&&&&&&&'
rjust
S.rjust(width[, fillchar]) -> str #擴充字元串到指定長度,不足由第二個參數從左邊填充,預設為空格
Return S right-justified in a string of length width. Padding is
>>> str1="hello world"
>>> str2="linux"
>>> str1.rjust(30,"#")
'###################hello world'
>>> str2.rjust(14,"$")
'$$$$$$$$$linux'
rsplit
S.rsplit(sep=None, maxsplit=-1) -> list of strings #從檔案尾部開始按指定的分隔符切分字元串
delimiter string, starting at the end of the string and
working to the front. If maxsplit is given, at most maxsplit
splits are done. If sep is not specified, any whitespace string
is a separator.
>>> str1="hello/world/people"
>>> str1.rsplit("/")
['hello', 'world', 'people']
>>> str2="/etc/sysconfig/selinux"
>>> str2.rsplit("/")
['', 'etc', 'sysconfig', 'selinux']
expandtabs
S.expandtabs(tabsize=8) -> str #按照所給的參數把一個制表符轉換成指定的空格,預設為轉換為8個空格
Return a copy of S where all tab characters are expanded using spaces.
If tabsize is not given, a tab size of 8 characters is assumed.
>>> str1="hello\tworld"
>>> print(str1)
hello world
>>> str1.expandtabs()
'hello world'
>>> str1.expandtabs(8)
'hello world'
>>> str1.expandtabs(2)
'hello world'
>>> str1.expandtabs(12)
'hello world'
rindex
S.rindex(sub[, start[, end]]) -> int #傳回子串在字元串中的索引值,未找到則抛出異常
Like S.rfind() but raise ValueError when the substring is not found.
>>> str1="abcdefghijklmn"
>>> str1.rindex("abc")
0
>>> str1.rindex("efg")
4
>>> str1.rindex("g")
6
>>> str1.rindex("m")
12
isprintable
S.isprintable() -> bool #字元裡所有的字元都為可列印字元時傳回True,否則傳回False
Return True if all characters in S are considered
printable in repr() or S is empty, False otherwise.
>>> str1=" "
>>> str2="hello world"
>>> str1.isprintable()
True
>>> str2.isprintable()
True
>>> str3="\t"
>>> print(str3)
>>> str3.isprintable()
False
splitlines
S.splitlines([keepends]) -> list of strings #按照換行符分隔字元串,傳回分隔後的清單
Return a list of the lines in S, breaking at line boundaries.
Line breaks are not included in the resulting list unless keepends
is given and true.
>>> str1="hello \e world"
>>> print(str1)
hello \e world
>>> str1.splitlines()
['hello \\e world']
>>> type(str1.splitlines())
<class 'list'>
>>> str2="hello world"
>>> str2.splitlines()
['hello world']
format_map
S.format_map(mapping) -> str #格式化輸出字元串
Return a formatted version of S, using substitutions from mapping.
>>> str1="hello world {lang}"
>>> lang="python"
>>> print(str1.format_map(vars()))
hello world python
>>> str2="{os} {database} {webserver} python"
>>> os="linux"
>>> database="mysql"
>>> webserver="apache"
>>> print(str2.format_map(vars()))
linux mysql apache python
isnumeric
S.isnumeric() -> bool #字元串裡所有的字元都是數字時傳回True,否則傳回False
Return True if there are only numeric characters in S,
False otherwise.
>>> str1="123456"
>>> str2="123.456"
>>> str3="hello world"
>>> str1.isnumeric()
True
>>> str2.isnumeric()
False
>>> str3.isnumeric()
False
partition
S.partition(sep) -> (head, sep, tail) #按照給定的字元分隔字元串,傳回一個元組,如果給定的字元串有多個,則以第一個索引為準
Search for the separator sep in S, and return the part before it,
the separator itself, and the part after it. If the separator is not
found, return S and two empty strings.
>>> str1="hello world"
>>> str1.partition(" ")
('hello', ' ', 'world')
>>> str1.partition("l")
('he', 'l', 'lo world')
>>> str1.partition("w")
('hello ', 'w', 'orld')
rpartition
S.rpartition(sep) -> (head, sep, tail) #按照給定的字元分隔字元串,傳回一個元組
Search for the separator sep in S, starting at the end of S, and return
the part before it, the separator itself, and the part after it. If the
separator is not found, return two empty strings and S.
>>> str1="abcdefg"
>>> str1.rpartition("b")
('a', 'b', 'cdefg')
>>> str1.rpartition("d")
('abc', 'd', 'efg')
>>> str1.rpartition("g")
('abcdef', 'g', '')