python字符串常用的方法解析

简介: 这是本人在学习python过程中总结的一些关于字符串的常用的方法.文中引用了python3.5版本内置的帮助文档,大致进行翻译,并添加了几个小实验.isalnumS.isalnum() -> bool #字符串里所有的字符都是字母或者数字时返回True,否则返回FalseReturn Tr...

这是本人在学习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
at least one character in S, False otherwise.

>>> 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
at least one cased character in S, False otherwise.

>>> 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.
With optional start, test S beginning at that position.
With optional end, stop comparing S at that position.
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.
If chars is given and not None, remove characters in chars instead.

>>> 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.
If chars is given and not None, remove characters in chars instead.

>>> 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,
such that sub is contained within S[start:end]. Optional
arguments start and end are interpreted as in slice notation.

>>> 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
done using the specified fill character (default is a space).

>>> str1="hello world"
>>> str2="linux"
>>> str1.rjust(30,"#")
'###################hello world'
>>> str2.rjust(14,"$")
'$$$$$$$$$linux'

rsplit

S.rsplit(sep=None, maxsplit=-1) -> list of strings #从文件尾部开始按指定的分隔符切分字符串

Return a list of the words in S, using sep as the
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.
The substitutions are identified by braces ('{' and '}').

>>> 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', '')
目录
相关文章
|
22天前
|
Python
Python f-strings:让字符串格式化更简洁高效!
Python f-strings:让字符串格式化更简洁高效!
154 81
|
22天前
|
Python
Python字符串格式化利器:f-strings入门指南
Python字符串格式化利器:f-strings入门指南
132 80
|
22天前
|
Python
Python高效字符串格式化:f-strings的魅力
Python高效字符串格式化:f-strings的魅力
119 80
|
1月前
|
Python
Python编程基石:整型、浮点、字符串与布尔值完全解读
本文介绍了Python中的四种基本数据类型:整型(int)、浮点型(float)、字符串(str)和布尔型(bool)。整型表示无大小限制的整数,支持各类运算;浮点型遵循IEEE 754标准,需注意精度问题;字符串是不可变序列,支持多种操作与方法;布尔型仅有True和False两个值,可与其他类型转换。掌握这些类型及其转换规则是Python编程的基础。
154 33
|
2月前
|
SQL 安全 算法
解读 Python 3.14:模板字符串、惰性类型、Zstd压缩等7大核心功能升级
Python 3.14 引入了七大核心技术特性,大幅提升开发效率与应用安全性。其中包括:t-strings(PEP 750)提供更安全灵活的字符串处理;类型注解惰性求值(PEP 649)优化启动性能;外部调试器API标准化(PEP 768)增强调试体验;原生支持Zstandard压缩算法(PEP 784)提高效率;REPL交互环境升级更友好;UUID模块扩展支持新标准并优化性能;finally块语义强化(PEP 765)确保资源清理可靠性。这些改进使Python在后端开发、数据科学等领域更具竞争力。
113 5
解读 Python 3.14:模板字符串、惰性类型、Zstd压缩等7大核心功能升级
|
2月前
|
Python
Python技术解析:了解数字类型及数据类型转换的方法。
在Python的世界里,数字并不只是简单的数学符号,他们更多的是一种生动有趣的语言,用来表达我们的思维和创意。希望你从这个小小的讲解中学到了有趣的内容,用Python的魔法揭示数字的奥秘。
83 26
|
2月前
|
监控 供应链 数据挖掘
淘宝商品详情API接口解析与 Python 实战指南
淘宝商品详情API接口是淘宝开放平台提供的编程工具,支持开发者获取商品详细信息,包括基础属性、价格、库存、销售策略及卖家信息等。适用于电商数据分析、竞品分析与价格策略优化等场景。接口功能涵盖商品基础信息、详情描述、图片视频资源、SKU属性及评价统计的查询。通过构造请求URL和签名,可便捷调用数据。典型应用场景包括电商比价工具、商品数据分析平台、供应链管理及营销活动监控等,助力高效运营与决策。
200 26
|
1月前
|
网络协议 API Python
解析http.client与requests在Python中的性能比较和改进策略。
最后,需要明确的是,这两种库各有其优点和适用场景。`http.client` 更适合于基础且并行的请求,`requests` 则因其易用且强大的功能,更适用于复杂的 HTTP 场景。对于哪种更适合你的应用,可能需要你自己进行实际的测试来确定。
67 10
|
1月前
|
数据采集 Web App开发 JavaScript
Python爬虫解析动态网页:从渲染到数据提取
Python爬虫解析动态网页:从渲染到数据提取
|
2月前
|
机器学习/深度学习 算法 测试技术
图神经网络在信息检索重排序中的应用:原理、架构与Python代码解析
本文探讨了基于图的重排序方法在信息检索领域的应用与前景。传统两阶段检索架构中,初始检索速度快但结果可能含噪声,重排序阶段通过强大语言模型提升精度,但仍面临复杂需求挑战
89 0
图神经网络在信息检索重排序中的应用:原理、架构与Python代码解析

推荐镜像

更多