python数据分析——字符串和文本数据1

参考资料:活用pandas库

1、字符串

        在python中,字符串是由一系列字符组成的。创建字符串时,要使用一对单引号或双引号。

(1)取子串和字符串切片

        可以把字符串视作字符的容器。可以对字符串取子串,就像对其他python容器(比如list和Series)所做的那样。

        注意,在python中使用切片时,其运行原则是“包左不保右”的原则,即包含冒号左侧索引值,但不包含冒号右侧索引值。在切片中使用负数索引无法得到字符串的最后一个字符。        

# 创建字符串
word='grail'
sent='a scratch'
# 单个字符
print(word[0]) # 获取第一个字符
# 字符串切片
print(word[:3]) # 取前3个字符,注意索引3对应的是第一个4个字符
# 负数索引
print(sent[-1]) # 获取最后一个字符

(2)获取字符串的最后一个字符

        如果只想获取字符串的最后一个元素,可以使用负数索引-1来实现。不过,当使用切片语法并且想包含字符的最后一个字符时,只需要获取字符串的长度,然后将其放到切片符号:的右侧即可。使用len函数返回的是字符串的长度,该长度比字符串最后一个字符的索引值大于1。

        当切片符号:左侧为空,则表示切片从字符串开头一直取到右侧结束索引的位置(但不包括结索引所指示的字符);若切片符号:右侧为空,则表示切片从左侧索引指示的字符开始,一直取到字符串的末尾(包括字符串的最后一个字符)。

        在python中,做切片时,可以以增量的方式获取元素。为此,要再使用一个冒号(:),并提供一个数字,用于指定获取元素的间隔。

# 获取字符串的长度
s_len=len(sent)
print(s_len)
# 从头开始或取到末尾的切片
print(word[:3]) # 从头开始
print(word[0:3])
print(word[2:]) # 取到字符串末尾
print(word[2:len(word)])
# 增量切片
print(sent[::2]) # 步长为2,即每隔一个字符取一个字符

3、字符串的方法

        capitalize:把首字母转换为大写。

        count:统计指定字符串出现的次数。

        startswith:检验字符串是否以指定值开始,若是,返回True。

        endswith:检验字符串是否以指定值结束,若是,返回True。

        find:在字符串中查找指定字符串,若找到,则返回首次出现的索引,否则返回-1。

        index:功能和find相同,但当匹配失败时,会返回VlueError。

        isalpha:若字符串中的所有字符串都是字母,则返回True。

        isdecimal:若字符串中的左右字符都是十进制数,则返回True。类似函数还有:isdigit、isnumeric等。

        isalnum:若字符串中的所有字符要么是字母要么是数字,则返回True。

        lower:把字符串中的所有字母改为小写。

        upper:把字符串中的所有字母改为大写。

        replace:把字符串的old(旧字符串)替换为new(新字符串)。

        strip:删除字符串中头尾指定的字符,还有lstrip和rstrip。

        split:使用指定分隔符分割字符串,并返回这些分割片段组成的列表。

        partition:类似于split(maxsplit=1),但同时会返回分隔符。

        center:把字符串居中对齐到指定宽度。

        zfill:按指定宽度复制字符串,原字符串靠右对齐,前面填充0。

# 相关示例
'black Knight'.capitalize()
"It's just a flesh wound".count('u')
'Halt Who goes there'.startswith('Halt')
'coconut'.endswith('nut')
"It's just a flesh wound".find('u')
# "It's just a flesh wound".index('scretch')
"old woman".isalpha()
'37'.isdecimal()
"I'm 37".isalnum()
'black Knight'.lower()
'black Knight'.upper()
"It's just a flesh wound".replace('flesh wound','scratch')
" I'm not dead ".strip()
"NI! NI! NI! NI!".split(sep=' ')
'3,4'.partition(',')
'nine'.center(10)
'g'.zfill(5)

4、更多字符串的方法

(1)join方法

        join方法带有一个参数,该参数是可迭代的容器(比如列表),返回通过指定字符连接容器元素后形成的新字符串。

d1='40°'
m1='46′'
s1='52.83″'
u1='N'
# 使用join方进行拼接字符串
coords=' '.join([d1,m1,s1,u1])
print(coords)

(2)splitlines方法

        splitlines方法和split方法类似。它通常用于跨多行的字符串,并返回一个列表,其中每个元素是跨行字符串的一行。

multi_str="""Guard:What? Ridden on a horse?
King Arthur:Yes!
Guard: You're using coconuts!
King Arthur: What?
Guard: You've got ... coconut and you're bangin
"""
print(multi_str)
multi_str_split=multi_str.splitlines()
print(multi_str_split)

  • 6
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值