参考资料:活用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)