博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用字符串
阅读量:5939 次
发布时间:2019-06-19

本文共 5508 字,大约阅读时间需要 18 分钟。

hot3.png

  • 基本操作
所有标准的序列操作(索引、分片、乘法、判断成员资格、求长度、取最小值、最大值)都适用与字符串,字符串不允许改变
  • 字符串方法
  • find() 
在一个字符串中查找子字符串,它返回子串中所在位置左端索引,如果找到返回-1
格式:
.find(self,sub,__start,__end)
1
1
 
1
.find(self,sub,__start,__end)
s = 'great,beautiful,contry,Python'print s.find('bea')     #返回6,表示第6个索引位置起找到了print s.find('cc')      print s.find('python')  #未发现返回-1print 'bea'in(s)        #in也判断有没有,返回的是布尔值,#指定起点和终点搜索范围的,但是范围包括_start,但不包括_end(Python中一般都这样)print s.find('bea',3)      print s.find('bea',3,7)print s.find('bea',3,8)print s.find('bea',3,10)#输出6-1-16
18
18
 
1
s = 'great,beautiful,contry,Python'
2
print s.find('bea')     #返回6,表示第6个索引位置起找到了
3
print s.find('cc')      
4
print s.find('python')  #未发现返回-1
5
print 'bea'in(s)        #in也判断有没有,返回的是布尔值,
6
 
7
 
8
#指定起点和终点搜索范围的,但是范围包括_start,但不包括_end(Python中一般都这样)
9
print s.find('bea',3)      
10
print s.find('bea',3,7)
11
print s.find('bea',3,8)
12
print s.find('bea',3,10)
13
 
14
#输出
15
6
16
-1
17
-1
18
6
注:
字符串中的 find 方法并不是返回布尔值,如返回0,则表示索引0位置
  • join() 
join()方法是非常重要的字符串方法,它是split()的逆方法,用于连接序列中的元素,
注意,被连接的元素必须都是字符串
# seq = [1,2,3]# sqe = '+'# sqe.join(seq)   #join()只能用于字符串的连接,所以报错a =['1','2','3']b ='+'print b.join(a)#输出1+2+3
9
9
 
1
# seq = [1,2,3]
2
# sqe = '+'
3
# sqe.join(seq)   #join()只能用于字符串的连接,所以报错
4
 
5
a =['1','2','3']
6
b ='+'
7
print b.join(a)
8
#输出
9
1+2+3
  • lower()
lower()方法返回字符串小写字母版
name = 'a'names = ('A','B','C')   #列表无法直接使用 lower()方法,这里用str()转化为字符串names = str(names)if(name in names.lower()):    print 'fount it'name = 'A'names = ('a','b','c')if(name.lower() in names):    print 'fount it'#输出#上述两者都输出“found it”
13
13
 
1
name = 'a'
2
names = ('A','B','C')   #列表无法直接使用 lower()方法,这里用str()转化为字符串
3
names = str(names)
4
if(name in names.lower()):
5
   print 'fount it'
6
 
7
name = 'A'
8
names = ('a','b','c')
9
if(name.lower() in names):
10
   print 'fount it'
11
 
12
#输出
13
#上述两者都输出“found it”
  • title()
会讲字符串转换为标题--也就是所有的单词的首字母大写,而其他字母小写
print "that's all folks".title()#输出That'S All Folks      #有点问题,那个s不应该大写#还可以使用 string 模块中的 capword()函数import string         print string.capwords("that's all folks")
8
8
 
1
print "that's all folks".title()
2
#输出
3
That'S All Folks      #有点问题,那个s不应该大写
4
 
5
 
6
#还可以使用 string 模块中的 capword()函数
7
import string        
8
print string.capwords("that's all folks")
  • replace()
replace() 方法返回某个字符串的所有匹配项均被替换之后得到的字符串
print "that's all folks".replace('all','a')  #第一个参数是要被替代的字符,第二个新字符#输出that's a folks
3
3
 
1
print "that's all folks".replace('all','a')  #第一个参数是要被替代的字符,第二个新字符
2
#输出
3
that's a folks
  • split()
split分隔,join的逆方法,将字符串分割成序列
如果不提供任何的分隔符,那么程序会把所有的空格作为分隔符(空格、制表、换行等)
print '1+2+3+4+5'.split('+')print '/usr/bin/env'.split('/')#输出['1', '2', '3', '4', '5']['', 'usr', 'bin', 'env']
5
5
 
1
print '1+2+3+4+5'.split('+')
2
print '/usr/bin/env'.split('/')
3
#输出
4
['1', '2', '3', '4', '5']
5
['', 'usr', 'bin', 'env']
string.rsplit([sep[,maxsplit ]]) 同split,但是在使用maxsplit是从右向左进行计数
string.split([sep[,maxsplit ]]) 返回字符串中所有单词的列表,使用 sep 作为分隔符(如果未特别指出以空格切分单词),可使用 maxsplit 指定最大切分数
  • strip()
strip() 方法返回去除两侧(不包括内部)空格或者指定的字符
它和 lower() 方法一起使用可以很方便的对比输入的和存储的值 
name = 'a '  # ' a '前后都有空格,所以结果为wrong,可以使用 strip()去除两侧的空格names = ('a','b','c')names = str(names)if(name.strip() in names.lower()):  # strip() 移除两侧的空格    print 'fount it'else:    print 'wrong'print "**that's **all*!* folks *!*  ***".strip('**! ')#输出that's **all*!* folks  #只会移除两侧的字符,内部的不会被移除
13
13
 
1
name = 'a '  # ' a '前后都有空格,所以结果为wrong,可以使用 strip()去除两侧的空格
2
names = ('a','b','c')
3
names = str(names)
4
if(name.strip() in names.lower()):  # strip() 移除两侧的空格
5
   print 'fount it'
6
else:
7
   print 'wrong'
8
 
9
 
10
print "**that's **all*!* folks *!*  ***".strip('**! ')
11
#输出
12
that's **all*!* folks  #只会移除两侧的字符,内部的不会被移除
13
 
string.lstrip([chars]) 返回一个字符串副本,其中所有的chars(默认为空白字符、比如空格、tab和换行符)都被字符串开始去除
string.rstrip([chars]) 返回一个字符串副本,其中所有的chars(默认为空白字符,比如空格、tab和换行符)都被从字符串结束处去除
  • translate()
translate() 方法和 replace() 方法一样,可以替换字符串中的某些部分,但是和前者不同的是,translate() 方法只处理单个字符,它的优势在于可以同时进行多个替换,有时效率比  replace() 效率高
常与 maketrans() 一起使用
# translate有一个可选的参数deletchars,表示指定需要删除的字符,# 格式:.translate(self,table,deletchars)# table:翻译表,通过 string 模块中 maketrans()方法而来# deletechars:字符串中要过滤的字符列表import strings = 'abcdefg-1234567'table = string.maketrans('', '')        # 没有映射,实际上就是按原始字符保留,看下面用到translate中时的效果print s.translate(table)                # 输出abcdefg-1234567print s.translate(table, 'abc123')      # 输出defg-4567 可以看到删除了字符abc123#输出abcdefg-1234567defg-4567# 下面再看有字符映射时的效果table = string.maketrans('abc', 'ABC')  # 用于translate中时的效果如下print s.translate(table)                # 输出ABCdefg-1234567 就是将abc映射为大写的ABC,前提是abc如果被保留下来了print s.translate(table, 'ab123')       # 输出Cdefg-4567 先把s中的ab123去除了,                                        # 然后在保留下来的字符中应用table中指定的字符映射关系映射:c -> C
x
25
 
1
# translate有一个可选的参数deletchars,表示指定需要删除的字符,
2
# 格式:.translate(self,table,deletchars)
3
# table:翻译表,通过 string 模块中 maketrans()方法而来
4
# deletechars:字符串中要过滤的字符列表
5
 
6
 
7
import string
8
 
9
s = 'abcdefg-1234567'
10
table = string.maketrans('', '')        # 没有映射,实际上就是按原始字符保留,看下面用到translate中时的效果
11
print s.translate(table)                # 输出abcdefg-1234567
12
print s.translate(table, 'abc123')      # 输出defg-4567 可以看到删除了字符abc123
13
 
14
#输出
15
abcdefg-1234567
16
defg-4567
17
 
18
 
19
# 下面再看有字符映射时的效果
20
table = string.maketrans('abc', 'ABC')  # 用于translate中时的效果如下
21
print s.translate(table)                # 输出ABCdefg-1234567 就是将abc映射为大写的ABC,前提是abc如果被保留下来了
22
print s.translate(table, 'ab123')       # 输出Cdefg-4567 先把s中的ab123去除了,
23
                                       # 然后在保留下来的字符中应用table中指定的字符映射关系映射:c -> C
24
 
25
   
更多参考

转载于:https://my.oschina.net/u/1785519/blog/1582425

你可能感兴趣的文章
常用的脚本编程知识点
查看>>
XILINX_zynq_详解(6)
查看>>
计算机网络术语总结4
查看>>
新手小白 python之路 Day3 (string 常用方法)
查看>>
soapUI的简单使用(webservice接口功能测试)
查看>>
框架 Hibernate
查看>>
python-while循环
查看>>
手机端上传图片及java后台接收和ajaxForm提交
查看>>
【MSDN 目录】C#编程指南、C#教程、ASP.NET参考、ASP.NET 4、.NET Framework类库
查看>>
jquery 怎么触发select的change事件
查看>>
angularjs指令(二)
查看>>
(原創) 如何建立一个thread? (OS) (Linux) (C/C++) (C)
查看>>
<气场>读书笔记
查看>>
领域驱动设计,构建简单的新闻系统,20分钟够吗?
查看>>
web安全问题分析与防御总结
查看>>
React 组件通信之 React context
查看>>
ZooKeeper 可视化监控 zkui
查看>>
Linux下通过配置Crontab实现进程守护
查看>>
ios 打包上传Appstore 时报的错误 90101 90149
查看>>
Oracle推出轻量级Java微服务框架Helidon
查看>>