python中对字符串处理的常用方法

 

                                                                                 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

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值