python知识点结构(五)(5.1标准类型)5.1.1三大常用类型之字符串
py2.7已将类和类型统一。
***
理解:定义的一切对象都有归属的python类,可以调用python提供的类方法。
***
py中的数据类型基本可以分为数字,str,bool,list,tuple,dict,set。
主要i介绍str,list,dict
1、str类
特性:不可被修改。
所有对字符串的操作后都是新产生一个字符串实例。
***
理解:py源码为C代码,C语言中没有字符串的概念,是字符的数组组合为字符创,定义数组首先就要定义数组的元素个数,所以暂理解为数组是静态分配内存。
abc变为acc,重新为acc分配内存,将首个字节内存地址赋给变量。这里的字符串名相当于C语言中数组名。
***
常用功能:
助记:索长移(除空格)分切,索长抽空分片。
索引,长度,切片。如下例。
#-*- coding:utf-8 -*- a = 'stringisright' #索引 print a[1] #长度 print len(a) #切片 注切出来的范围相当于0<= an < len(a) print a[0:len(a)] #切片 切出来最后一个字符 print a[-1:] #切片 间隔切片 print a[0::3] print a[0::] >>> t 13 stringisright t siiit stringisright >>>
移除空格,如下例子。
#-*- coding:utf-8 -*-
a = ' stringisright '
#1 移除两端空白
b = a.strip()
print '1',b
#2 移除两端指定字符 注只移除两端
b = 'ooostringisooorightoo'
c = b.strip('o')
print '2',c
#3 移除右端指定字符
c = b.rstrip('o')
print '3',c
#4 移除左端指定字符
c = b.lstrip('o')
print '4',c
>>>
1 stringisright
2 stringisoooright
3 ooostringisoooright
4 stringisooorightoo
>>>
分割和列表重组,如下例。
#-*- coding:utf-8 -*-
a = 'string\nisright'
#1 根据换行符分割
b = a.splitlines()
print '1',b
#2 根据给定内容分割,从左至右可以指定最大分割次数
b = 'ooostringisooorightoo ks fr sdg sd'
c = b.split('o',2)
print '2',c
#3 按照空格分割,返回以空格间隔的字符串为元素的列表
test = b.split(' ')
print "3",test
#4 被剔除的元素以空字符的形式存在列表中,分割后再重新组合为字符串
#把列表中所有元素都连起来包括空字符,join前面的对象是指列表中元素用神恶魔内容连接。
b = 'ooostringisooorightoo'
listb = b.split('o')
pr = ''.join(listb)
print '4',pr
#5 从左端指定字符分割
b = 'ooostringisooorightoo'
c = b.split('o',1)
print '5',c
#6 从左端指定字符分割
b = 'ooostringisooorightoo'
c = b.split('o',1)
print '6',c
>>>
1 ['string', 'isright']
2 ['', '', 'ostringisooorightoo ks fr sdg sd']
3 ['ooostringisooorightoo', 'ks', 'fr', 'sdg', 'sd']
4 stringisright
5 ['', 'oostringisooorightoo']
6 ['', 'oostringisooorightoo']
>>>
再介绍几个常用类方法。变大写,变小写。
#-*- coding:utf-8 -*- a = 'stringiSright' #1 不管字符串初始什么形式转化为,只有首字母大写 注意给定初始a字符串中间有一个大写的S,在使用capitalize后,只有首字母大写了。 print a b = a.capitalize() print '1',b #2 所有变大写 b = a.upper() print '2',b #3 所有字母变小写 b = a.lower() print '3',b #4 是否为数字 b = a.isdigit() print '4',b #5 是否为字母 b = a.isalpha() print '5',b
#6 是否为子母和数字 b = a.isalnum() print '6',b
>>> stringiSright
1 Stringisright
2 STRINGISRIGHT
3 stringisright
4 False
5 True
6 True >>>
容积类型最重要的增删改查数,查寻功能也会融合后面的正则表达式一起作总结。再介绍统计数量的功能,如下例。
#-*- coding:utf-8 -*-
a = 'stringhiSright'
#1 统计字符串gh的个数
print a
b = a.count('gh')
print '1',b
>>>
stringhiSright
1 2
>>>
查找和替换,如下例。
#! /usr/bin/env python
#-*- coding:utf-8 -*-
#1 replace替换指定字符串,可以指定替换个数。
a = 'AAadGqAaw'
char = a.replace('A','_',2)
print '1',a,char
#2 find查找一个元素,若有多个符合查找条件的元素,返回最前一个查找到的元素的序列号,未找到则返回-1。
a = 'AAadGqAaw'
b = a.find('A',0,3)
print '2',b
b = a.find('u',0,3)
print '2',b
>>>
1 AAadGqAaw __adGqAaw
2 0
2 -1
>>>
判断是否以某字符串开头或结尾,附加大小写转化,如下例。
#! /usr/bin/env python
#-*- coding:utf-8 -*-
a = 'AAadGqAaw'
#1 endswith是否以某个字符串结尾。
char = a.endswith('A')
print '1',a,char
char = a.endswith('w')
print '1',a,char
#2 startswith是否以某个字符串结尾。
b = a.startswith('r')
print '2',b
b = a.startswith('A')
print '2',b
#3 swapcase大小写转化。
b = a.swapcase()
print '3',a,b
>>>
1 AAadGqAaw False
1 AAadGqAaw True
2 False
2 True
3 AAadGqAaw aaADgQaAW
>>>
浙公网安备 33010602011771号