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装饰器
May 09 Python
Python下的Softmax回归函数的实现方法(推荐)
Jan 26 Python
简述:我为什么选择Python而不是Matlab和R语言
Nov 14 Python
Python使用Selenium+BeautifulSoup爬取淘宝搜索页
Feb 24 Python
解决pycharm回车之后不能换行或不能缩进的问题
Jan 16 Python
Win10环境python3.7安装dlib模块趟过的坑
Aug 01 Python
python shutil文件操作工具使用实例分析
Dec 25 Python
Python 一行代码能实现丧心病狂的功能
Jan 18 Python
Python作用域与名字空间原理详解
Mar 21 Python
PyCharm Community安装与配置的详细教程
Nov 24 Python
Python爬虫之Selenium鼠标事件的实现
Dec 04 Python
python 对xml解析的示例
Feb 27 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
PHP 常见郁闷问题答解
2006/11/25 PHP
fgetcvs在linux的问题
2012/01/15 PHP
PHP获取当前所在目录位置的方法
2014/11/26 PHP
Sublime里直接运行PHP配置方法
2014/11/28 PHP
Apache服务器下防止图片盗链的办法
2015/07/06 PHP
总结PHP删除字符串最后一个字符的三种方法
2016/08/30 PHP
laravel 5.1下php artisan migrate的使用注意事项总结
2017/06/07 PHP
PHP实现绘制二叉树图形显示功能详解【包括二叉搜索树、平衡树及红黑树】
2017/11/16 PHP
网易JS面试题与Javascript词法作用域说明
2010/11/09 Javascript
超级有用的13个基于jQuery的内容滚动插件和教程
2011/07/31 Javascript
jquery分页插件jpaginate在IE中不兼容问题
2014/04/22 Javascript
在js里怎么实现Xcode里的callFuncN方法(详解)
2016/11/05 Javascript
Canvas实现动态的雪花效果
2017/02/13 Javascript
JS与CSS3实现图片响应鼠标移动放大效果示例
2018/05/04 Javascript
webpack里使用jquery.mCustomScrollbar插件的方法
2018/05/30 jQuery
JavaScript内置对象math,global功能与用法实例分析
2019/06/10 Javascript
原生js实现针对Dom节点的CRUD操作示例
2019/08/26 Javascript
JS简易计算器实例讲解
2020/06/30 Javascript
实现python版本的按任意键继续/退出
2016/09/26 Python
import的本质解析
2017/10/30 Python
python如何读写csv数据
2018/03/21 Python
Ubuntu16.04/树莓派Python3+opencv配置教程(分享)
2018/04/02 Python
对python实现合并两个排序链表的方法详解
2019/01/23 Python
分析运行中的 Python 进程详细解析
2019/06/22 Python
python3 dict ndarray 存成json,并保留原数据精度的实例
2019/12/06 Python
自定义Django_rest_framework_jwt登陆错误返回的解决
2020/10/18 Python
Numpy ndarray 多维数组对象的使用
2021/02/10 Python
使用CSS3的::selection改变选中文本颜色的方法
2015/09/29 HTML / CSS
CSS3按钮鼠标悬浮实现光圈效果源码
2016/09/11 HTML / CSS
国际知名设计师时装商店:Coggles
2016/09/05 全球购物
红领巾心向党广播稿
2014/01/19 职场文书
年终晚会主持词
2014/03/25 职场文书
教师党的群众路线教育实践活动学习心得体会
2014/10/30 职场文书
2014年幼儿园小班工作总结
2014/12/04 职场文书
合同纠纷调解书
2015/05/20 职场文书
springboot使用Redis作缓存使用入门教程
2021/07/25 Redis