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——要连接的变量,可以是字符串、元组、字典、列表等。
上述代码将三个句子用句号连接起来,输出字符串如下: