购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.1.2 字符串

1.字符串的创建

字符串类型是编程中表示文本的数据类型。在金融领域,常常遇到文本数据(如股吧评论、财经新闻等),这样的数据就是用字符串表示的。创建字符串可以使用单引号、双引号、三单引号和三双引号,其中三引号可以多行定义字符串,使用三引号还可以实现多行注释的功能。不论使用哪种引号进行字符串创建,引号需要成对地出现,不能使用双引号开始用单引号结尾;如果文本中出现了双引号,那么在创建字符串时需要与文本内部的双引号进行区分。

字符串还可以用来表示网页的网址、数据存储的路径等。但是在用字符串表示路径时,常常出现转义字符(如:“\t”等),导致显示出来的结果与我们希望得到的结果有所不同。

因此,我们常常在字符串前面加上“r”,表示“r”内部的字符串默认不转义,或者采用将“\”写成“\\”的方法。

我们在字符串前加上f可以灵活地在字符串中嵌入变量和表达式的值,称为f-string,这方便我们构造特定的字符串。例如,应用大语言模型分析文本时,通常需要构建提示语,下面的例子展示了如何构造一个提示语,在提示语中通过{}和f,将公司名称、新闻标题和新闻日期引入。

2.字符串相关操作以及方法

字符串常用的操作函数或方法如表2-1所示。

表2-1 字符串常用的操作函数或方法

(续)

(1)字符串的索引和切片

字符串索引通过下标访问字符串相应位置(索引)的元素,如代码str[index]。字符串切片,通过起始位置的下标以及步长(step)切取特定对象,str[start_index:end_index:step],如果不写step参数,默认为1,即获取start_index: end_index的每个字符(不包括end_index位置字符)。

思考:切片的操作范围为什么是左闭右开的?

(2)字符串的替换

在Python中对字符串中的文本进行替换的语句如下:

将字符串str中的字符old_str替换为新的new_str字符串,count是可选参数,表示只有前面的count个出现被替换,默认情况下替换所有old_str。

(3)字符串的大小写转换

在处理英文评论时,会出现大小写的情况,为了得到更加精确的结果或减轻工作量,我们常常进行大小写转换。比如,在处理文本过程中常常涉及词频统计,但在Python中,相同的单词若大小写不同则会算成不同的单词,为了得到更加精确的统计,我们常常将文本中的单词统一转换为小写或大写。

str.lower():用于将字符串中的所有大写字母转换为小写字母。

str.upper():用于将字符串中的所有小写字母转换为大写字母。

(4)统计字符出现的次数

str.count("char",start,end)用于统计字符串中某个字符出现的次数,默认情况下统计整个字符串中出现的相应字符。

· char——要统计的字符。

· start——索引字符串的起始位置,默认参数为0。

· end——索引字符串的结束位置,默认参数为字符串长度。

下面的代码对原始的article和小写处理后的article做词频统计。

(5)字符串的查找

str.find(sub,start,end)用于在字符串中查找相应的子串sub,并返回该子串的起始位置(即最小索引),如果未找到返回-1。

· sub——要查找的子字符串。

· start——索引的起始位置,默认值为0。

· end——索引的结束位置,默认值为字符串长度。

下面这个程序采用find函数查找出“摊手”这个词第一次出现的位置。

(6)字符串的拆分

str.split(sep=None,maxsplit=-1)[n]用于拆分字符串。通过指定分隔符sep对字符串进行分割,并返回分割后的字符串列表。

· sep——分隔符,默认为空格。

· maxsplit——最大分割参数,默认参数为-1。

· [n]——返回列表中下标为n的元素。列表索引的用法。

输出:

(7)字符串的连接

sep.join(iterable)

该方法可以采用将一个可迭代对象,按照一定的规则(即按照sep的定义)合并成为一个字符串。

· sep——分隔符,可以为空。

· iterable——要连接的变量,可以是字符串、元组、字典、列表等。

上述代码将三个句子用句号连接起来,输出字符串如下: mK8J4bC0poxPFnQJz/AkIw7s6bGM//p/za40JoT4caSElSpLXT33tyJh5/KJxiJk

点击中间区域
呼出菜单
上一章
目录
下一章
×