python中 str处理
1.索引与切片
切片 str.[起始索引:结尾索引+1:步长]
索引 str.[索引值]
索引方式是类似于C语言中将字符串看做字符数组,取其下标。从左往右取 首字母下标为0. 从右往左取,首字母为-1。
切片是将字符串做分割处理。如:s="asdfgh" s1=s.[0] s1="a" s1=s.[1] s1="s" s1=s[-1] s1="h"
从左到右切片: [目标字符串起始字符索引 :目标字符串结尾字符索引+1:步长] s="asdfghjk" s1=s.[0:3] s1="asd" 注意 不是"asdf"
从右到左切片: [目标字符串起始字符索引:目标字符串结尾字符索引-1:步长] 从右到左切片时,必须设置步长,若按顺序取,则为-1.
步长:将字符串看做一个数组,数组中每个元素之间的距离都为1,切片操作就是从起始下标开始取其中的元素,直到结尾下标,把这个过程想象成一个人在数组上走路,两只脚踩哪,哪个元素被取走,如果步长为1,则每个脚都能取到值,如果步长为2或-2,则会跨过一个元素,如果步长为3或-3,则会跨过两个元素。-2和-3是当从右向左取时的步长,从右向左切片时,步长必须为负数。
如: s="asdfgh" s1=s.[0:4:2] s1="ad" s1=s.[-1:-4:-2] s1="hf"
2.相关函数
(1). capitalize()
对英文字符处理,首字母大写,其余全部小写。 用法 str1=str.capitalize()
(2). swapcase()
大小写翻转 str1=str.swapcase()
(3). center()
字符串居中,可设置字符串长度,和左右填充物
如 str1=str.center(20) 默认填充物为空格
str1=str.center(20,“*”)
(4). title()
字符串中非字母元素间隔开来的每个单词的首字母大写 str1=str.title()
(5). upper() lower()
upper() 使字母全部的大写
lower() 使字母全部小写
str1=str.upper()
str1=str.lower()
(6).find() index()
find : str.find(str, beg=0, end=len(string))
str为指定检索的字符串 beg为起始索引,默认为0 end为结束索引 ,若认为字符串长度,找到目的字符串后,返回所查找字符串的起始索引值。找不到返回-1.
index和find用法相同,区别在于index在找不到切片后,返回的是 报错信息。 而不是-1.
(7). strip() : 默认去除字符串前后两端的换行符,制表符,空格。
lstrip():默认去除字符串左端的换行符,制表符,空格。
rstrip():默认去除字符串右端的换行符,制表符,空格。
s=“qworiashd” s1=s.strip("qwo") s1="riashd"
(8). split(): 默认以空格分隔成列表,可指定字符,可指定次数。
rsplit():从右往左分割默认以空格分割成列表,可指定字符,可指定次数
语法:str.split(str="", num=string.count(str)).
- str -- 分隔符,默认为所有的空字符,包括空格、换行(\n)、制表符(\t)等。
- num -- 分割次数。默认为 -1, 即分隔所有。
例如 s="as df gh" s1=s.split() s1=['as','df','gh']
(9). replace()
语法: str.replace(old, new, max)
replace() 把字符串中的 old(旧字符串) 替换成 new(新字符串),如果指定第三个参数max,则替换不超过 max 次。
如
s="asdfgh" s1=str.repalce(a,b) s1="bsdfgh"
(10). join()
str.join(sequence) sequence :要连接的元素序列
返回通过指定字符连接序列中元素后生成的新字符串。
str = "-";
seq = ("a", "b", "c"); # 字符串序列
print str.join( seq );
a-b-c
(11)format()
实例
>>>"{} {}".format("hello", "world") # 不设置指定位置,按默认顺序
'hello world'
>>> "{0} {1}".format("hello", "world") # 设置指定位置
'hello world'
>>> "{1} {0} {1}".format("hello", "world") # 设置指定位置
'world hello world'
也可以设置参数:
print("网站名:{name}, 地址 {url}".format(name="菜鸟教程", url="www.runoob.com"))
>>>网站名:菜鸟教程, 地址 www.runoob.com
# 通过字典设置参数
site = {"name": "菜鸟教程", "url": "www.runoob.com"}
print("网站名:{name}, 地址 {url}".format(**site))
>>>网站名:菜鸟教程, 地址 www.runoob.com
# 通过列表索引设置参数
my_list = ['菜鸟教程', 'www.runoob.com']
print("网站名:{0[0]}, 地址 {0[1]}".format(my_list)) # "0" 是必须的
>>>网站名:菜鸟教程, 地址 www.runoob.com
(12). is系列
1. isalnum()
语法:str.isalnum()
如果 string 至少有一个字符并且所有字符都是字母或数字则返回 True,否则返回 False
实例:
str = "this2009"; # 字符中没有空格
print str.isalnum();
>>>Ture
str = "this is string example....wow!!!";
print str.isalnum();
>>>False
2.isalpha()
语法:str.isalpha()
如果字符串至少有一个字符并且所有字符都是字母则返回 True,否则返回 False
实例
以下实例展示了isalpha()方法的实例:
str = "this"; # No space & digit in this string
print str.isalpha();
>>>Ture
str = "this is string example....wow!!!";
print str.isalpha();
>>>False
3. isdigit()
语法:str.isdigit()
如果字符串只包含数字则返回 True 否则返回 False。
实例
str = "123456"; # Only digit in this string
print str.isdigit();
>>>Ture
str = "this is string example....wow!!!";
print str.isdigit();
>>>False
(13).count()
语法:str.count(sub, start= 0,end=len(string))
sub -- 搜索的子字符串
start -- 字符串开始搜索的位置。默认为第一个字符,第一个字符索引值为0。
end -- 字符串中结束搜索的位置。字符中第一个字符的索引为 0。默认为字符串的最后一个位置。
返回子字符串在字符串中出现的次数。
实例:
str = "this is string example....wow!!!";
sub = "i";
print "str.count(sub, 4, 40) : ", str.count(sub, 4, 40)
>>>str.count(sub, 4, 40) : 2
sub = "wow";
print "str.count(sub) : ", str.count(sub)
>>>str.count(sub) : 1
(14). len()
语法 : len(str)
str--对象
返回对象的长度
实例:
>>>str = "runoob"
>>> len(str) # 字符串长度
6
>>> l = [1,2,3,4,5]
>>> len(l) # 列表元素个数
5