python3字符串操作总结


Posted in Python onJuly 24, 2019

介绍Python常见的字符串处理方式

字符串截取

>>>s = 'hello'
>>>s[0:3]
'he' 
>>>s[:] #截取全部字符
'hello'

消除空格及特殊符号    

s.strip() #消除字符串s左右两边的空白字符(包括'\t','\n','\r','')
 
s.strip('0') #消除字符串s左右两边的特殊字符(如'0'),字符串中间的'0'不会删除

例如:

>>>s = '000hello00world000'
>>>s.strip('0')
'hello00world'
s.strip('12')等价于s.strip('21')

例如:

>>>s = '12hello21'
>>>s.strip('12')
'hello'

lstrip,rstrip 用法与strip类似,分别用于消除左、右的字符

字符串复制

s1 = 'hello'
s2 = s1 # s2 = 'hello'

若指定长度

s1 = 'hello'
s2 = s1[0:2] #s2 = 'he'

字符串连接

s1 = 'hello'
s2 = 'world'
s3 = s1 + s2 #s3 = 'helloworld'

或者

import operator
s3 = operator.concat(s1,s2) #concat为字符串拼接函数

字符串比较

(1)利用operator模块方法比较(python3.X取消了cmd函数)

包含的方法有:

  • lt(a, b) ———— 小于
  • le(a, b) ———— 小于等于
  • eq(a, b) ———— 等于
  • ne(a, b) ———— 不等于
  • ge(a, b) ———— 大于等于
  • gt(a, b) ———— 大于

例子:

>>>import operator
>>>operator.eq('abc','edf') #根据ASCII码比较
Flase
>>>operator.gt('abc','ab')
True

(2)关系运算符比较(>,<,>=,<=,==,!=)

>>>s1 = 'abc'
>>>s2 = 'ab'
>>>s1 > s2
True
>>>s1 == s2
False

求字符串长度

>>>s1 = 'hello'
>>>len(s1)
5

求字符串中最大字符,最小字符

>>>s1 = 'hello'
>>>max(s1) #求字符串s1中最大字符
'o'
>>>min(s1) #求字符串s2中最小字符
'e'

字符串大小写转换

主要有如下方法:

  1. upper ———— 转换为大写
  2. lower ———— 转换为小写
  3. title ———— 转换为标题(每个单词首字母大写)
  4. capitalize ———— 首字母大写
  5. swapcase ———— 大写变小写,小写变大写

例子:

>>>s1 = 'hello'
>>>s2 = 'WORLD'
>>>s3 = 'hello world'
>>>s1.upper() 
'HELLO'
>>>s2.lower() 
'world'
>>>s3.title() 
'Hello World'
>>>s3.capitalize() 
'Hello world'
>>>s3.title().swapcase() 
'hELLO wORLD'

字符串翻转

>>>s1 = 'hello'
>>>s1[::-1]
'olleh'

字符串分割

split方法,根据参数进行分割,返回一个列表

例子:

>>>s1 = 'hello,world'
>>>s1.split(',')
['hello','world']

字符串序列连接

join方法:

语法为str.join(seq) #seq为元素序列

例子:

>>>l = ['hello','world']
>>>str = '-'
>>>str.join(l)
'hello-world'

字符串内查找

find方法:

检测字符串内是否包含子串str

语法为:

str.find(str[,start,end]) #str为要查找的字符串;strat为查找起始位置,默认为0;end为查找终止位置,默认为字符串长度。若找到返回起始位置索引,否则返回-1

例子:

>>>s1 = 'today is a fine day'
>>>s1.find('is')
6
>>>s1.find('is',3)
6
>>>s1.find('is',7,10)
-1

字符串内替换

replace方法:

把字符串中的旧串替换成新串

语法为:

str.replace(old,new[,max]) #old为旧串,new为新串,max可选,为替换次数

例子:

>>>s1 = 'today is a find day'
>>>s1.replace('find','rainy')
'today is a rainy day'

判断字符串组成

主要有如下方法:

  • isdigit ———— 检测字符串时候只由数字组成
  • isalnum ———— 检测字符串是否只由数字和字母组成
  • isalpha ———— 检测字符串是否只由字母组成
  • islower ———— 检测字符串是否只含有小写字母
  • isupper ———— 检测字符串是否只含有大写字母
  • isspace ———— 检测字符串是否只含有空格
  • istitle ———— 检测字符串是否是标题(每个单词首字母大写)

例子:

>>>s1 = 'hello'
>>>s1.islower()
True
>>>s1.isdigit()
False

字符串转数组

a = 'My name is Jason'
#使用split(str="", num=string.count(str)) 方法根据不同的分割符转,也可指定分割次数,可使用 ' '.join方法转回
>>> 'My name is Jason'.split(' ')
['My', 'name', 'is', 'Jason']
>>> ' '.join(['My', 'name', 'is', 'Jason'])
'My name is Jason'

字符串首尾匹配

>>> 'cat.jpg'.startswith('cat')
True
>>> 'cat.jpg'.startswith('cat',0,3)
True
>>> 'cat.jpg'.endswith('.jpg')
True
>>> 'cat.jpg'.endswith('.jpg',-4)
True

字符串空格处理

>>> s = ' Hello World  '
>>> s.strip()
'Hello World'
>>> s.lstrip()
'Hello World  '
>>> s.rstrip()
' Hello World'
#扩展
>>> 'www.example.com'.lstrip('www.')
'example.com'
>>> 'www.example.com'.lstrip('cmowz.')
'example.com'

字符串格式化、数字及大小写判断、长度补全

#字符串的格式化
>>> '{name},{sex},{age}'.format(age=15,sex='male',name='小安')
'小安,male,15'
>>> '{1},{0},{2}'.format('15','小安','male')
'小安,15,male'
>>> '{},{},{}'.format('小安', '15','male')
'小安,15,male'

#如果字符串中的所有字符都是数字,并且至少有一个字符,则返回真,否则返回假
>>> '123'.isdigit()
True
>>> '123一二三'.isdigit()
False
#isnumeric 是所有字符都是数字字符返回真
>>> '123一二三'.isnumeric()
True

#字符串是否大小写判断
>>> 'abc'.islower()
True
>>> 'Abc'.islower()
False
>>> 'ABC'.isupper()
True

#首字母大写
>>> "they're bill's friends from the UK".title()
"They'Re Bill'S Friends From The Uk"
#正则处理方式
>>> import re
>>> def titlecase(s):
...   return re.sub(r"[A-Za-z]+('[A-Za-z]+)?",
...          lambda mo: mo.group(0)[0].upper() +
...               mo.group(0)[1:].lower(),
...          s)
...
>>> titlecase("they're bill's friends.")
"They're Bill's Friends."

#返回指定长度字符串,前面补0,一般存csv文件中含00开头的字符0会被抹掉
>>> code = '1'
>>> code.zfill(6)
'000001'

#字符串长度及遍历
>>> s = '混蛋哥'
>>> len(s)
3
>>> for i in s:
  print(i)
混
蛋
哥
>>>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python切片用法实例教程
Sep 08 Python
Python实现打砖块小游戏代码实例
May 18 Python
python 求10个数的平均数实例
Dec 16 Python
python实现扫雷小游戏
Apr 24 Python
Python函数参数分类原理详解
May 28 Python
Python调用百度OCR实现图片文字识别的示例代码
Jul 17 Python
Python如何将将模块分割成多个文件
Aug 04 Python
python如何调用百度识图api
Sep 29 Python
Python3使用 GitLab API 进行批量合并分支
Oct 15 Python
Python基于callable函数检测对象是否可被调用
Oct 16 Python
python Zmail模块简介与使用示例
Dec 19 Python
Python Pygame实战在打砖块游戏的实现
Mar 17 Python
django数据关系一对多、多对多模型、自关联的建立
Jul 24 #Python
django如何自己创建一个中间件
Jul 24 #Python
django如何通过类视图使用装饰器
Jul 24 #Python
django 类视图的使用方法详解
Jul 24 #Python
django如何实现视图重定向
Jul 24 #Python
python字符串分割及字符串的一些常规方法
Jul 24 #Python
django使用haystack调用Elasticsearch实现索引搜索
Jul 24 #Python
You might like
ThinkPHP行为扩展Behavior应用实例详解
2014/07/22 PHP
laravel入门知识点整理
2020/09/15 PHP
深入解析PHP底层机制及相关原理
2020/12/11 PHP
Javascript学习笔记2 函数
2010/01/11 Javascript
JS getStyle获取最终样式函数代码
2010/04/01 Javascript
javascript正则表达式中参数g(全局)的作用
2010/11/11 Javascript
js confirm()方法的使用方法实例
2013/07/13 Javascript
js捕获鼠标滚轮事件代码
2013/12/16 Javascript
JavaScript中原型和原型链详解
2015/02/11 Javascript
JS验证邮件地址格式方法小结
2015/12/01 Javascript
jquery自动补齐功能插件flexselect用法示例
2016/08/06 Javascript
Jquery根据浏览器窗口改变调整大小的方法
2017/02/07 Javascript
jQuery使用unlock.js插件实现滑动解锁
2017/04/04 jQuery
Vue实现左右菜单联动实现代码
2018/08/12 Javascript
Nuxt.js开启SSR渲染的教程详解
2018/11/30 Javascript
详解Vue.directive 自定义指令
2019/03/27 Javascript
vue 路由懒加载中给 Webpack Chunks 命名的方法
2020/04/24 Javascript
一篇超完整的Vue新手入门指导教程
2020/11/18 Vue.js
python开发之基于thread线程搜索本地文件的方法
2015/11/11 Python
Python实现求笛卡尔乘积的方法
2017/09/16 Python
python实现神经网络感知器算法
2017/12/20 Python
Python JSON格式数据的提取和保存的实现
2019/03/22 Python
python画图的函数用法以及技巧
2019/06/28 Python
Python下opencv图像阈值处理的使用笔记
2019/08/04 Python
python3 dict ndarray 存成json,并保留原数据精度的实例
2019/12/06 Python
python使用html2text库实现从HTML转markdown的方法详解
2020/02/21 Python
css3实现背景图片拉伸效果像桌面壁纸一样
2013/08/19 HTML / CSS
Html5饼图绘制实现统计图的方法
2020/08/05 HTML / CSS
中国专业的音频分享平台:喜马拉雅
2019/05/24 全球购物
介绍Java的内部类
2012/10/27 面试题
电子装配专业毕业生求职信
2014/04/23 职场文书
无房产证房屋转让协议书合同样本
2014/10/18 职场文书
2014会计年终工作总结
2014/12/20 职场文书
党员转正党支部意见
2015/06/02 职场文书
[有人@你]你有一封绿色倡议书,请查收!
2019/07/18 职场文书
Vue3实现简易音乐播放器组件
2022/08/14 Vue.js