返回介绍

第4单元 理解基本的字符串函数

发布于 2024-01-28 22:01:16 字数 2431 浏览 0 评论 0 收藏 0

字符串是计算机世界和人类世界之间的基本交互单元。最初,几乎所有的原始数据都存储为字符串。在本单元中,你将学习如何评估和操作文本字符串。

本单元中描述的所有函数都是内置的str类的成员函数。

大小写转换函数返回原始字符串s的一个副本:lower()函数将所有字符转换为小写;upper()函数将所有字符转换为大写;capitalize()函数将第一个字符转换为大写,同时将其他所有字符转换为小写。这些函数不会影响非字母字符。大小写转换函数是规范化的一个重要元素,第16单元讲解了规范化的相关内容。

判定(predict)函数根据字符串s是否属于适当的类而返回True或False:islower()函数检查所有字母字符是否为小写;isupper()函数检查所有字母字符是否为大写;isspace()函数检查所有字符是否为空格;isdigit()函数检查所有字符是否为范围0~9中的十进制数字;isalpha()函数检查所有字符是否为a~z或A~Z范围内的字母字符。使用这些函数,你可以识别有效的单词、非负整数、标点符号等。

Python有时会将字符串数据表示为原始的二进制数组,而非字符串,尤其是当数据来自外部源(外部文件、数据库或Web)时。Python使用符号b来标识二进制数组。例如,bin = b"Hello"是一个二进制数组;s = "Hello"是一个字符串。s[0]和bin[0]分别是'H'和72,其中72是字符'H'的ASCII码。解码函数将二进制数组转换为字符串或反之:bin.decode()将二进制数组转换为字符串,而s.encode()将字符串转换为二进制数组。许多Python函数都需要将二进制数据转换为字符串,然后再做处理。

字符串处理的第一步是去除不需要的空白(包括换行符和制表符)。函数lstrip()(left strip)、rstrip()(right strip)和strip()分别在字符串的开始处、结束处或对整个字符串删除所有空格(不删除字符串内部空格)。经过这些删除操作后,得到的可能会是一个空字符串!

   "    Hello, world! \t\t\n".strip()

➾ 'Hello, world!'

字符串通常包含多个标记符,用空格、冒号和逗号这样的分隔符分割。函数split(delim='')使用delim作为分隔符,将字符串s分割为子字符串组成的一个列表。如果未指定分隔符,Python会使用空白字符来分割字符串,并将所有连续的空白合并:

   "Hello,  world!".split() # 两个空格!

➾ ['Hello,', 'world!']

   "Hello,  world!".split(" ") # 两个空格!

➾ ['Hello,', '', 'world!']

   "www.networksciencelab.com".split(".")

➾ ['www', 'networksciencelab', 'com']

连接函数join(ls)——分割函数的姐妹函数——将字符串列表ls连接在一起,形成一个字符串,并使用特定的对象字符串作为连接符。你可以使用join()函数重组字符串片段:

   ", ".join(["alpha", "bravo", "charlie", "delta"])

➾ 'alpha, bravo, charlie, delta'

在这个例子中,join()函数仅在字符串之间插入连接符,而在第一个字符串前或最后一个字符串后都不插入连接符。这种分割字符串和再次连接字符片段的操作,往往用于将已有的分隔符替换为给定的连接符,字符串本身看上去并没有明显的变化:

   "-".join("1.617.305.1985".split("."))

➾ '1-617-305-1985'

有时,为了从字符串中删除不需要的空白,你可能会同时使用这两个函数。当然你也可以使用基于正则表达式的替换来实现相同的效果(参考第10单元第2小节)。

   " ".join("This string\n\r  has    many\t\tspaces".split())

➾ 'This string has many spaces'

函数find(needle)返回对象字符串中子字符串needle第一次出现的索引值,当子字符串不存在时,返回-1。该函数区分大小写,它可用于在字符串中查找感兴趣的片段(如果存在的话)。

   "www.networksciencelab.com".find(".com")

➾ 21

函数count(needle)返回对象字符串中子字符串needle非重叠出现的次数,该函数也区分大小写。

   "www.networksciencelab.com".count(".")

➾ 2

字符串是任何数据处理程序的重要组件,但它既不是唯一的组件,也不是最高效的组件。还可以使用列表、元组、集合和字典来捆绑字符串和数值数据,以实现高效的搜索和排序。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文