Python基础之字符串操作常用函数集合

Python字符串常用功能汇总

1、字符串的定义

#定义空字符串>>> name=''#定义非空字符串
>>> name="luoahong"#通过下标访问
>>> name[1]
'u'#不能修改字符串的值,否则会报错
>>> name[2] = "3"
Traceback (most recent call last):
 File "<stdin>", line 1, in <module>
TypeError: 'str' object does not support item assignment

  特别提醒:字符串如果修改的话,字符串所在的内存地址也跟着变化,所以不可被修改,但是对于列表来说,可以修改是因为列表的内存是不变的,可以直接在上面修改

2、切片

特别提醒:字符串其实和列表,元组一样,也是可以切片的

>>> name="ahong luo"
>>> name[1:4]  #取1到4之间的字符,包括1,不包括4
'hon'
>>> name[1:-1]  #取1到-1之间的字符,包括1,不包括-1
'hong lu'
>>> name[0:3] 
'aho'
>>> name[:3]   #从头开始取,0可以省略,效果等同于name[0:3]
'aho'
>>> name[3:]   #想取到最后一个值,必须不能写-1,只能这么写
'ng luo'
>>> name[0::2]  #后面的2表示:每隔一个字符就取一个
'aoglo'
>>> name[::2]   #从头开始0可以省略,效果跟上一句一样
'aoglo'

3、首字母大写(capitalize())

>>> name="ahong luo"
>>> name.capitalize()
'Ahong luo'
>>>

4、统计(count(sub,start=None,end=None))

sub:统计的字符,start:开始位,end:结束位,start和end默认为空时,则表示全部字符中去统计

>>> name="ahong luo"
#有开始和结束符
>>> name.count("o",1,5)
1#从整个字符串中统计字符
>>> name.count("o")2
>>>

5、center(width,fillchar)

如果width(字符宽度)小于等于(<=)字符串的长度,则返回原字符串,如果大于(>)字符串的,则用fillchar(填满字符)填满,处理结果等于width,字符串位于fillchar的中间

>>> name="ahong luo"
>>> len(name)
9#10小于等于字符串宽度
>>> name.center(12,'-')
'-ahong luo--'#50大于字符串长度,并且字符串位于填充字符的中间
>>> name.center(50,'-')
'--------------------ahong luo---------------------'
>>> len(name.center(50,'-'))
50

6、ljust(width,fillchar)

如果字符串的长度大于width(字符宽度),则返回原字符串,如果小于width,则用fillchar(填满字符)填满,处理结果等于width,fillchar位于字符串的最右边

>>> name="ahong luo"
>>> len(name)
9#小于等于字符串的长度
>>> name.ljust(8,'-')
'ahong luo'#大于字符串的长度
>>> name.ljust(50,'-')
'ahong luo-----------------------------------------'

 特别提醒:ljust中的l表示left的意思,表示从右向左

7.rjust(width,fillchar)

如果字符串的长度大于width(字符宽度),则返回原字符串,如果小于width,则用fillchar(填满字符)填满,处理结果等于width,fillchar位于字符串的最左边

>>> name="ahong luo">>> len(name)
9
>>> name.rjust(8,'-')
'ahong luo'
>>> name.rjust(50,'-')
'-----------------------------------------ahong luo' 

 特别提醒:ljust中的l表示left的意思,表示从左向右

8、编码(encode)

字符串的编码和解码,在这边不用说了,我专门写了一篇博客,详细地址:猛击这里

9、endwith(suffix,start=None,end=None)

判断是否已suffix结尾,是返回True,否返回Fales

suffix:表示字符,start:开始位,end:结束位,start和end默认为空是,表示从整个字符串的结尾去判断>>> name="ahong luo"

>>> name.endswith('0',1,4) False >>> name.endswith('o') True >>> name.endswith('o',1,4) False

10、find(sub,start=None,end=None)

全文查找sub中第一个字符所在整个字符串中的索引值,没有找到则返回-1

sub:字符或者字符串,start:开始位,end:结束位,start和end默认为空时,则在整个字符串中查找

>>> name="ahong luo"

#没找到,则返回-1
>>> name.find("lu",1,4)
-1
>>> name.find("a",2)
-1
>>> name.find("lu")
6
>>> name.find("lu",1,6)
-1
>>> name.find("lu",1,10)
6
>>>

11、rfind(sub,start=None,end=None)

从左向右查找sub中第一个字符所在整个字符串中的索引值,没有找到则返回-1

>>> name="ahong luo"#找到
>>> name.rfind("a")
0#未找到
>>> name.rfind("a",2)
-1

12、format()

①关键字拼接也是官方推荐

1
2
3
4
5
6
7
8
9
name = "alex"
age = 18

info = '''----info-----
name:{_name}
age:{_age}
 '''.format(_name=name,_age=age)

print(info)
 ②占位符拼接

1
2
3
4
5
6
7
8
9
name = "alex"
age = 18

info = '''----info-----
name:{0}
age:{1}
 '''.format(name,age)

print(info)

13、format_map()

数据格式,以字典形式传入

>>> name="name:{name},age:{age}"
>>> name.format_map({"name":"luoahong",'age':23})#输出结果
'name:luoahong,age:23'

14、isalnum()

是否是一个阿拉伯数字和字母,它包含因为英文字符+(1-9)数字,中间不能有特殊字符

>>> age='23'
>>> age.isalnum()
True#有特殊字符的
>>> age='ab23'
>>> age='ab'
>>> age.isalnum()
True
>>> age='ab'
>>> age.isalpha()
True
>>>

15、isalpha()

是否是一个纯的英文字符,包含大写

>>> age = 'ab'
>>> age.isalpha()
True
#夹着数字
>>> age = 'ab23'
>>> age.isalpha()
False
#大写
>>> age = 'Ab'
>>> age.isalpha()
True

 16、isdigit()

判断是否是一个整数

17、isspace()

判断是否是一个空格

#不是空格
>>> age = ' age'
>>> age.isspace()
False
#是空格
>>> age = ' '
>>> age.isspace()
True

 18、istitle()

 是否是一个标题(字符串中的每个单子首字母大写)

#每个单词的首字母是小写>>> name="luoahong"
>>> name.istitle()
False
>>> name="luo a hong"
>>> name.istitle()
False#每个单词的首字母大写
>>> name="Luo A Hong"
>>> name.istitle()
True
>>> name="Luoahong"
>>> name.istitle()
True 

19、isupper()

是否是大写,注意字符串必须全部是大写才会返回True,否则返回False

#全部大写>>> name="LUO"
>>> name.isupper()
True#小写
>>> name="Luo"
>>> name.isupper()
False
>>>

 20、join()

序列用某个字符拼接成一个字符串,注意的是,序列的元素必须是str类型

>>> a = ['1','2','3']
>>> '+'.join(a)
'1+2+3'

 21、lower()

字符串中的大写字母转换为小写字母

>>> name="LuoAHong"
>>> name.lower()
'luoahong'
>>>

 22、upper()

字符串中的小写字母转换为大写字母

>>> name="LuoAHong"
>>> name.upper()
'LUOAHONG'

 23、strip()

去掉左右两边的空格(space)和回车(\n)

>>> name= " \n luoahong \n"
>>> name.strip()
'luoahong'

 24、lstrip()

删掉左边到右的空格(space)和回车(\n)

>>> name= " \n luoahong \n"
>>> name.lstrip()
'luoahong \n'

 25、rstrip()

删掉右边到左边的空格(space)和回车(\n)

>>> name= " \n luoahong \n"
>>> name.rstrip()
' \n luoahong'

至此,方法前有l(left)和r(right)的函数,都是对之前函数的一个扩展,带l的表示至始至终从右到左操作,记住左边才是最终目的地,而带r的至始至终都是从左到右,因为右边才是它的终极目标

26、split()

分割函数,默认是以空格分割(space)生成一个列表,如果其他字符分割,输入其他字符参数

>>> name="ahong luo"#默认为空,按空格分割
>>> name.split()
['ahong', 'luo']
>>> name="ahong+luo"#以"+"字符分割>>> name.split("+")
['ahong', 'luo']#以'\n'分割
>>> name="ahong\nluo"
>>> name.split("\n")
['ahong', 'luo']

 27、splitlines()

以换行符分割,这个一般在windows上开发,移到Linux上执行,或者在Linux上开发,移到Windows上执行,因为换行在windows上是"\r\n",linux上是'\n'

>>> name="ahong\nluo"
>>> name.splitlines()
['ahong', 'luo']

 28、swapcase()

把大写换成小写,把小写换成大写

>>> name="Luo"
>>> name.swapcase()
'lUO'

29、startswith(prefix, start=None,end=None)

判断是否以prefix开始,是返回True,否返回Fales

prefix:表示字符或者字符或者字符串,start:开始位,end:结束位,start和end默认为空是,表示从整个字符串的结尾去判断

>>> name="ahong luo"
>>> name.startswith("luo")  #开头找到"luo"字符串
False
>>> name.startswith("h",3,5)  #在索引3到5之间没有找到以字符'h'开头
False 

30、replace(old,new[, max])

old:将被替换的子字符串; new:新字符串,用于替换old子字符串;max:可选字符串, 替换不超过 max 次

>>> name="wo shi luo a hong"
>>> name.replace("shi","bushi")
'wo bushi luo a hong'#原字符串没有改变
>>> name.replace("shi","bushi",0)
'wo shi luo a hong'
>>> name.replace("shi","bushi",1)
'wo bushi luo a hong'

31、zfill(width)

字符的长度是否大于等于(>=)with,如果比width小,则在字符串钱用0填充,如果>=width,则返回原字符串

>>> name="luoahong"
>>> len(name)
8#width大于字符串长度
>>> name.zfill(11)
'000luoahong'#width小于等于字符串长度
>>> name.zfill(8)
'luoahong'
>>>
(0)

相关推荐

  • Python字符串的encode与decode研究心得乱码问题解决方法

    为什么会报错"UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-1: ordinal not in range(128)"?本文就来研究一下这个问题. 字符串在Python内部的表示是unicode编码,因此,在做编码转换时,通常需要以unicode作为中间编码,即先将其他编码的字符串解码(decode)成unicode,再从unicode编码(encode)成另一种编码. decode的作用

  • python分割和拼接字符串

    关于string的split 和 join 方法对导入os模块进行os.path.splie()/os.path.join() 貌似是处理机制不一样,但是功能上一样. 1.string.split(str=' ',num=string.count(str)): 以str为分隔,符切片string,如果num有指定值,则仅分隔num个子字符串.S.split([sep [,maxsplit]]) -> 由字符串分割成的列表 返回一组使用分隔符(sep)分割字符串形成的列表.如果指定最大分割数,则在

  • python判断字符串是否纯数字的方法

    本文实例讲述了python判断字符串是否纯数字的方法.分享给大家供大家参考.具体如下: 判断的代码如下,通过异常判断不能区分前面带正负号的区别,正则表达式可以根据自己需要比较灵活的写,通过isdigit方法用来判断是否是纯数字,测试代码如下 复制代码 代码如下: #!/usr/bin/python # -*- coding: utf-8 -*- a = "1" b = "1.2" c = "a" #通过抛出异常 def is_num_by_exc

  • Python去掉字符串中空格的方法

    我们经常在处理字符串时遇到有很多空格的问题,一个一个的去手动删除不是我们程序员应该做的事情,今天这篇技巧的文章我们就来给大家讲一下,如何用Python去除字符串中的空格.我们先创建一个左右都有N个空格的字符串变量s,看代码: 复制代码 代码如下: >>> s = "   我们    ">>> 去除字符串空格,在Python里面有它的内置方法,不需要我们自己去造轮子了.lstrip:删除左边的空格这个字符串方法,会删除字符串s开始位置前的空格. 复制代

  • Python 字符串操作方法大全

    1.去空格及特殊符号 复制代码 代码如下: s.strip().lstrip().rstrip(',') 2.复制字符串 复制代码 代码如下: #strcpy(sStr1,sStr2)sStr1 = 'strcpy'sStr2 = sStr1sStr1 = 'strcpy2'print sStr2 3.连接字符串 复制代码 代码如下: #strcat(sStr1,sStr2)sStr1 = 'strcat'sStr2 = 'append'sStr1 += sStr2print sStr1 4.查

  • python实现字符串和日期相互转换的方法

    本文实例讲述了python实现字符串和日期相互转换的方法.分享给大家供大家参考.具体分析如下: 这里用的分别是time和datetime函数 ''' @author: jiangqh ''' import time,datetime # date to str print time.strftime("%Y-%m-%d %X", time.localtime()) #str to date t = time.strptime("2009 - 08 - 08", &q

  • Python中用format函数格式化字符串的用法

    自python2.6开始,新增了一种格式化字符串的函数str.format(),可谓威力十足.那么,他跟之前的%型格式化字符串相比,有什么优越的存在呢?让我们来揭开它羞答答的面纱. 语法 它通过{}和:来代替%. "映射"示例 通过位置 In [1]: '{0},{1}'.format('kzc',18) Out[1]: 'kzc,18' In [2]: '{},{}'.format('kzc',18) Out[2]: 'kzc,18' In [3]: '{1},{0},{1}'.fo

  • python字符串替换的2种方法

    python 字符串替换 是python 操作字符串的时候经常会碰到的问题,这里简单介绍下字符串替换方法. python 字符串替换可以用2种方法实现: 1是用字符串本身的方法. 2用正则来替换字符串 下面用个例子来实验下: a = 'hello word' 把a字符串里的word替换为python 1.用字符串本身的replace方法 复制代码 代码如下: a.replace('word','python') 输出的结果是hello python 2.用正则表达式来完成替换: 复制代码 代码如

  • Python内置的字符串处理函数整理

    str='python String function' 生成字符串变量str='python String function' 字符串长度获取:len(str)例:print '%s length=%d' % (str,len(str)) 字母处理全部大写:str.upper()全部小写:str.lower()大小写互换:str.swapcase()首字母大写,其余小写:str.capitalize()首字母大写:str.title()print '%s lower=%s' % (str,st

  • Python时间戳与时间字符串互相转换实例代码

    复制代码 代码如下: #设a为字符串import timea = "2011-09-28 10:00:00" #中间过程,一般都需要将字符串转化为时间数组time.strptime(a,'%Y-%m-%d %H:%M:%S')>>time.struct_time(tm_year=2011, tm_mon=9, tm_mday=27, tm_hour=10, tm_min=50, tm_sec=0, tm_wday=1, tm_yday=270, tm_isdst=-1) #

  • Python字符串拼接、截取及替换方法总结分析

    本文实例讲述了Python字符串拼接.截取及替换方法.分享给大家供大家参考,具体如下: python字符串连接 python字符串连接有几种方法,我开始用的第一个方法效率是最低的,后来看了书以后就用了后面的2种效率高的方法,跟大家分享一下. 先介绍下效率比较低的方法: a = ['a','b','c','d'] content = '' for i in a: content = content + i print content content的结果是:'abcd' 后来我看了书以后,发现书上

  • python list 合并连接字符串的方法

    比如下面一个list 复制代码 代码如下: binfo = ['lao','wang','python'] 我们通过help方法得知,可以用string的join方法来解决. 下面我们通过空格来连接3个单词: 复制代码 代码如下: content = " ".join(binfo)print content 结果是:lao wang python

  • python字符串连接的N种方式总结

    python中有很多字符串连接方式,今天在写代码,顺便总结一下: 最原始的字符串连接方式:str1 + str2 python 新字符串连接语法:str1, str2 奇怪的字符串方式:str1 str2 % 连接字符串:'name:%s; sex: ' % ('tom', 'male') 字符串列表连接:str.join(some_list) 第一种,想必只要是有编程经验的人,估计都知道,直接用 "+" 来连接两个字符串: 'Jim' + 'Green' = 'JimGreen' 第

  • python 字符串split的用法分享

    比如我们的存储的格式的: 格式的: 姓名,年龄|另外一个用户姓名,年龄 name:haha,age:20|name:python,age:30|name:fef,age:55 那我们可以通过字符串对象的split方法切割字符串对象为列表. a = 'name:haha,age:20|name:python,age:30|name:fef,age:55' print a.split('|') 返回结果:['name:haha,age:20', 'name:python,age:30', 'name

  • Python实现字符串与数组相互转换功能示例

    本文实例讲述了Python实现字符串与数组相互转换功能.分享给大家供大家参考,具体如下: 字符串转数组 str = '1,2,3' arr = str.split(',') print a 运行结果: 数组转字符串 #方法1 arr = ['a','b'] str1 = ','.join(arr) print str1 #方法2 arr = [1,2,3] #str = ','.join(str(i) for i in arr)#此处str命名与str函数冲突! str2 = ','.join(

  • Python使用MD5加密字符串示例

    Python加密模块有好几个,但无论是哪种加密方式都需要先导入相应的加密模块然后再使用模块对字符串加密. 先导入md5加密所需模块: 复制代码 代码如下: import hashlib 创建md5对象 复制代码 代码如下: m = hashlib.md5() 生成加密串,其中 password 是要加密的字符串 复制代码 代码如下: m.update('password') 获取加密串 复制代码 代码如下: psw = m.hexdigest() 输出 复制代码 代码如下: print psw

  • python统计字符串中指定字符出现次数的方法

    本文实例讲述了python统计字符串中指定字符出现次数的方法.分享给大家供大家参考.具体如下: python统计字符串中指定字符出现的次数,例如想统计字符串中空格的数量 s = "Count, the number of spaces." print s.count(" ") x = "I like to program in Python" print x.count("i") PS:本站还提供了一个关于字符统计的工具,感兴

  • python判断字符串是否包含子字符串的方法

    本文实例讲述了python判断字符串是否包含子字符串的方法.分享给大家供大家参考.具体如下: python的string对象没有contains方法,不用使用string.contains的方法判断是否包含子字符串,但是python有更简单的方法来替换contains函数. 方法1:使用 in 方法实现contains的功能: site = 'http://www.jb51.net/' if "jb51" in site: print('site contains jb51') 输出结

随机推荐