Python序列类型有:字符串、列表、元组、字典类型。其中字符串和元组是不可改变的,像元祖就有人叫做叫做列表的只读模式。
对于不可变类型,单个元素不能执行赋值操作,但是可以整体上赋值操作,如s = s + 'new string'。(其实是一个新的变量,用id()可以看出两变量的内存不同)
这些序列类型都用[]来确定元素位置,但是定义各有差别。String用单引号或者双引号;list用[];tuple用(,) 实际上是,起作用,完全可以省略()。dict用{key:value}方式。其中key只能是不可变类型,如数字、字符串、元组等,不能是list。
对于不可变类型要想改变原来元素的值,(而不是追加)必须先解包在打包。解包就是切片操作,打包是重新建立一个变量重新赋值。
# 得到making
str = 'string'
str = 'mak' + str[3:]
下面介绍常用的String方法:
- s.strip() :去掉开始和结束的space,\t,\n等,返回字符串
s = ' string \n'
s = s.strip() + 'new'
print s
- s.upper() / s.lower() :将字符全部变为大写/小写,返回字符串
#s.startswith(‘str’) / s.endswith(‘str’) :是否以指定字符串开头或结尾,返回布尔型 - s.find(str) :返回str出现的下标值
- s.replace(old_str , new_str) :执行字符串替换功能,返回字符串
s = 'string'
s = s.replace('s', '*')
print s # *tring
- list = s.split(str) :以str为分隔符,将str分割成子字符串存于列表中,返回子字符串列表
s = 'stringstring'
li = s.split('str')
print li #['', 'ing', 'ing']
#s.join(list) :与split相反,用于连接。若list=[‘X’,’Y’,’Z’],则
X–Y–Z
s = 'string'
s = s.join(['AA','BB','CC','DD'])
print s #AAstringBBstringCCstringDD
6.index()与find()区别:
使用index()时必须确定该成员一定在str或list内,如果不是其内部成员,调用index()会报错,而这时find()会返回-1.所以尽量用find确定成员索引。