1、strip、lstrip和rstrip

描述:

用于移除字符串左右两边、左边、右边指定的字符(默认为空白符,例如:/n, /r, /t, ' ')或字符序列。

语法:

str.strip([chars])
str.lstrip([chars])
str.rstrip([chars])

例如:

1)移除单个字符或空白:

>>> '  abc '.strip()
'abc' >>> ' abc'.lstrip()
'abc' >>> 'abc '.rstrip()
'abc' >>> 'abc'.strip('a')
'bc' >>> 'abc'.lstrip('a')
'bc' >>> 'abc'.rstrip('c')
'ab'

2)移除一个字符串列表(是否会删除的前提是从字符串最开头和最结尾是不是包含要删除的字符,如果有就会继续处理,没有的话是不会删除中间的字符的):

>>> 'abc@163.com'.strip('cawm')
'bc@163.co' >>> 'abc@163.com'.lstrip('cawm')
'bc@163.com' >>> 'abc@163.com'.rstrip('cawm')
'abc@163.co'

 2、大小写转换lower、upper、title、capitalize、swapcase

描述:

lower:将字符串中的大写字母转为小写字母。

upper:将字符串中的小写字母转为大写字母。

title:将所有单词首字母转为大写,其余字母均转为小写。

capitalize:将字符串的第一个字母转为大写,其他字母转为小写。

swapcase:将字符串做大小写字母转换(大写->小写,小写->大写)

语法:

str.lower()
str.upper()
str.title()
str.capitalize()
str.swapcase()

例如:

>>> 'aBcDe'.upper()
'ABCDE' >>> 'aBcDe'.lower()
'abcde' >>> 'thIs is a exaMple'.title()
'This Is A Example' >>> 'this is A example'.capitalize()
'This is a example' >>> 'aBcDe'.swapcase()
'AbCdE'

3、find、index、rfind、rindex

描述:

find:检测字符串中是否包含子字符串 str ,如果指定 beg(开始) 和 end(结束) 范围,则检查是否包含在指定范围内,如果包含子字符串返回开始的索引值,否则返回-1。

index:检测字符串中是否包含子字符串 str ,如果指定 beg(开始) 和 end(结束) 范围,则检查是否包含在指定范围内,该方法与 python find()方法一样,只不过如果str不在 string中会报一个异常。

rfind:类似于find()函数,只不过是从字符串右边开始查找。

rindex:类似于index()函数,只不过是从字符串右边开始查找。

语法:

str.find(str, beg=0, end=len(string))
str.index(str, beg=0, end=len(string))
  • str -- 指定检索的字符串
  • beg -- 开始索引,默认为0。
  • end -- 结束索引,默认为字符串的长度。

例如:

>>> str1 = 'This is a example!'
... str2 = 'example'
... index = str1.find(str2, 0, len(str1))
... print(index)
10 >>> str1 = 'This is a example!'
... str2 = 'example'
... index = str1.index(str2, 0, len(str1))
... print(index)
10

4、count

描述:

统计字符串里某个字符出现的次数。可选参数为在字符串搜索的开始与结束位置。

语法:

str.count(sub, start= 0, end=len(string))

例如:

>>> 'hello world'.count('o')
2 >>> 'hello world'.count('o', 5 , len('hello world'))
1

5、replace

描述:

把字符串中的 old(旧字符串) 替换成 new(新字符串),如果指定第三个参数max,则替换不超过 max 次。

语法:

str.replace(old, new[, max])
  • old -- 将被替换的子字符串。
  • new -- 新字符串,用于替换old子字符串。
  • max -- 可选字符串, 替换不超过 max 次。

例如:

>>> str = 'This is a example'
... nStr = str.replace('is', 'was')
... print(nStr)
Thwas was a example >>> str = 'This is a example'
... nStr = str.replace('a', 'some', 1)
... print(nStr)
This is some example

6、split、splitlines、partition、rpartition

描述:

split:指定分隔符对字符串进行切片,如果参数 num 有指定值,则仅分隔 num 个子字符串。

splitlines:按照行('\r', '\r\n', \n')分隔,返回一个包含各行作为元素的列表,如果参数 keepends 为 False,不包含换行符,如果为 True,则保留换行符。

partition:根据指定的分隔符将字符串进行分割。如果字符串包含指定的分隔符,则返回一个3元的元组,第一个为分隔符左边的子串,第二个为分隔符本身,第三个为分隔符右边的子串。

rpartition:类似于partition()函数,只不过是从右边开始。

语法:

str.split(str="", num=string.count(str))
  • str -- 分隔符,默认为所有的空字符,包括空格、换行(\n)、制表符(\t)等。
  • num -- 分割次数。
str.splitlines([keepends])
  • keepends -- 在输出结果里是否保留换行符('\r', '\r\n', \n'),默认为 False,不包含换行符,如果为 True,则保留换行符。
str.partition(str)
  • str-- 指定的分隔符。
str.rpartition(str)

例如:

>>> 'This \nis a \nexample'.split()
['This', 'is', 'a', 'example'] >>> 'This \nis a \nexample'.split(' ', 1)
['This', '\nis a \nexample' >>> 'This \nis a \nexample'.splitlines()
['This ', 'is a ', 'example'] >>> 'This \nis a \nexample'.splitlines(True)
['This \n', 'is a \n', 'example'] >>> 'www.example.com'.partition('.')
('www', '.', 'example.com') >>> 'www.example.com'.rpartition('.')
('www.example', '.', 'com')

7、填充ljust、center、rjust

描述:

ljust:返回一个指定的宽度 width 居左的字符串,fillchar 为填充的字符,默认为空格。如果指定的长度小于原字符串的长度则返回原字符串。

center:返回一个指定的宽度 width 居中的字符串,fillchar 为填充的字符,默认为空格。如果指定的长度小于原字符串的长度则返回原字符串。

rjust:返回一个指定的宽度 width 居右的字符串,fillchar 为填充的字符,默认为空格。如果指定的长度小于原字符串的长度则返回原字符串。

语法:

str.ljust(width[, fillchar])
str.center(width[, fillchar])
str.rjust(width[, fillchar])
  • width -- 字符串的总宽度。
  • fillchar -- 填充字符。

例如:

>>> '[www.example.com]'.ljust(30, '*')
'[www.example.com]*************' >>> '[www.example.com]'.rjust(30, '*')
'*************[www.example.com]' >>> '[www.example.com]'.center(30, '*')
'******[www.example.com]*******' >>> '[www.example.com]'.center(4, '*')
'[www.example.com]'

8、join

描述:

将序列中的元素以指定的字符连接生成一个新的字符串。

语法:

str.join(sequence)
  • sequence -- 要连接的元素序列。

例如:

>>> '-'.join(('a', 'b', 'c'))
'a-b-c'

9、isalpha、isdigit、isalnum、isspace

描述:

isalpha:检测字符串是否只由字母组成。

isdigit:检测字符串是否只由数字组成。

isalnum:检测字符串是否由字母和数字组成。

isspace:检测字符串是否只由空格组成。

语法:

str.isalpha()
str.isdigit()
str.isalnum()
str.isspace()

例如:

>>> 'abc'.isalpha()
True >>> ''.isdigit()
True >>> 'abc123'.isalnum()
True >>> ' '.isspace()
True

Python 常见的字符串操作的更多相关文章

  1. JavaScript中常见的字符串操作函数及用法

    JavaScript中常见的字符串操作函数及用法 最近几次参加前端实习生招聘的笔试,发现很多笔试题都会考到字符串的处理,比方说去哪儿网笔试题.淘宝的笔试题等.如果你经常参加笔试或者也是一个过来人,相信 ...

  2. Python中的字符串操作总结(Python3.6.1版本)

    Python中的字符串操作(Python3.6.1版本) (1)切片操作: str1="hello world!" str1[1:3] <=> 'el'(左闭右开:即是 ...

  3. python入门7 字符串操作

    字符串操作 #coding:utf-8 #/usr/bin/python """ 2018-11-03 dinghanhua 字符串操作 ""&quo ...

  4. 一句python,一句R︱python中的字符串操作、中文乱码、NaN情况

    一句python,一句R︱python中的字符串操作.中文乱码.NaN情况 先学了R,最近刚刚上手Python,所以想着将python和R结合起来互相对比来更好理解python.最好就是一句pytho ...

  5. 【Python自动化Excel】Python与pandas字符串操作

    Python之所以能够成为流行的数据分析语言,有一部分原因在于其简洁易用的字符串处理能力. Python的字符串对象封装了很多开箱即用的内置方法,处理单个字符串时十分方便:对于Excel.csv等表格 ...

  6. Python 基础之字符串操作,函数及格式化format

    一.字符串的相关操作 1.字符串的拼接 + strvar1 = "我爱你,"strvar2 = "亲爱的姑凉"res = strvar1 + strvar2pr ...

  7. [Python Study Notes]字符串操作

    字符串操作 a.字符串格式化输出 name = "liu" print "i am %s " % name     #输出: i am liu   PS: 字符 ...

  8. (Python基础)字符串操作

    以下是我在学习过程中用的一些常用字符串操作的相关列子和具体注释,感兴趣的可以自己动手试试看 #字符串操作 name = 'my name is keep' print(name.capitalize( ...

  9. Bash 中常见的字符串操作

    获取字符串长度 ${#string} MyString=abcABC123ABCabc 注意这会自动去掉字符串结尾处的空格,如果在字符串中包含空格(开头.中间或结尾),就需要使用引号把字符串包裹起来: ...

随机推荐

  1. 2018.11.19 Struts2中Action类的书写方式

    方式1: 方式2: 方式3

  2. Vision-Based Positioning for Internet-of-Vehicles

    Vision-Based Positioning for Internet-of-Vehicles Introduction Ego-positioning aims at locating an o ...

  3. 【luogu P1195 口袋的天空】 题解

    题目链接:https://www.luogu.org/problemnew/show/P1195 嗯~我是被题目背景吸引到才做的,想吃棉花糖啦! 话说回来,这道题其实很容易就能想明白,k棵最小生成树. ...

  4. Android学习笔记_15_网络通信之文件断点下载

    一.断点下载原理: 使用多线程下载文件可以更快完成文件的下载,多线程下载文件之所以快,是因为其抢占的服务器资源多.如:假设服务器同时最多服务100个用户,在服务器中一条线程对应一个用户,100条线程在 ...

  5. detection工作

    今天看到YOLO2的工作还是很不错的,效果好,关键是速度也快,已经完胜SSD了感觉. 虽然faster rcnn各方面效果都不错,但是从简单粗暴的角度考虑,SSD和YOLO真的深得我心啊. 检测模型, ...

  6. #leetcode刷题之路9- 回文数

    判断一个整数是否是回文数.回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数. 示例 1:输入: 121输出: true 示例 2:输入: -121输出: false解释: 从左向右读, 为 ...

  7. ETO的公开赛T4《对抗水滴》 题解(BY 萌萌哒123456 )

    题意: 给你一个\(n*n\)的矩阵A,其中有\(T\)个元素不为零.定义矩阵内元素\((x,y)\)的能量值 \(E[x][y]=\sum_{i=1}^{x}\sum_{j=1}^{y}[A[i][ ...

  8. oracle中connect by语句的优化

    很多应用中都会有类似组织机构的表,组织机构的表又通常是典型的层次结构(没有循环节点).于是通过组织控制数据权限的时候,许多人都喜欢通过connect by获得组织信息,然后再过滤目标数据. 在有些情况 ...

  9. Mybatis中多个参数的问题&&动态SQL&&查询结果与类的对应

    ### 1. 抽象方法中多个参数的问题 在使用MyBatis时,接口中的抽象方法只允许有1个参数,如果有多个参数,例如: Integer updatePassword( Integer id, Str ...

  10. struts2的token interceptor

    关于struts2的token拦截器的说明 原理:struts2的token interceptor是关于重复提交的拦截器,其实现是:在form表单中加入token标签,如下: <form ac ...