Python学习笔记2(序列)

元组:不可变序列

元组与列表一样,也是一种序列,唯一不同是元组不能修改。

创建元组很简单:用逗号将一些值分开,就会自动创建元组。创建只有一个值的元组的时候要在该值后面加上一个逗号。

tuple函数

该函数的功能与list函数基本上是一样的:以一个序列作为参数并把它转换为元组。

如果参数就是元组,那么原值返回。元组的分片还是元组。元组的操作只有赋值和访问两种。元组用圆括号括起来。

两种列表不能代替元组的情况:

  • 元组可以在映射(和集合的成员)中当作键使用——而列表则不行。
  • 元组作为很多内建函数和方法的返回值存在,所以经常会对元组进行操作。

一般来说,列表可能更满足对序列的所有需求。

总结
  • 序列。序列是一种数据结构,它包含的元素都进行了编号(从0开始)。典型的序列包括列表、字符串、元组(另外还有Unicode字符串、buffer对象、xrange对象。)其中,列表是可变的(可以进行修改),而元组和字符串是不可变的(不可修改,一旦创建了就是固定的)。通过分片操作可以访问序列的一部分,其中分片需要两个索引号来指明分片的起始和终止,(其中起始索引号在分片范围内,而终止索引号不在分片范围之内。)要想改变列表,则要对相应的位置赋值或利用赋值语句重新书写整个分片。
  • 成员资格。in操作可以判断一个元素是否属于该序列,也可以用来判断一个字符串是否是一个字符串的子序列。
  • 方法。一些内建类型(比如列表和字符串,元组不在其中)具有很多有用的方法。这些方法类似于函数,不过他们与特定值联系密切。方法是面向对象编程中的一个重要的概念。

字符串

字符串是序列的一种,可以利用序列的索引和分片来对字符串访问和赋值。但是字符串是不可改变的。

基本字符串的操作

所有标准的序列操作都可以适用于字符串,比如索引、分片、乘法、加法、判断成员资格、求序列长度、找序列最大最小值等。但是要记住字符串不可修改。

字符串格式化

字符串格式化利用字符串格式化操作符%来完成。

字符串方法
find

find方法可以在一个较长的字符串中查找子字符串,它返回子串最左端所在位置的索引值,如果没有找到就返回-1.

>>> title='monty is a beatiful girl!'
>>> title.fin('girl')
Traceback (most recent call last):
  File "<pyshell#1>", line 1, in <module>
    title.fin('girl')
AttributeError: 'str' object has no attribute 'fin'
>>> title.find('girl')
20

注意,find返回的并不是布尔值,如果返回了0,则表示在索引值为0出找到了子序列。并且find还可以提供可选择的搜索范围(起点和终点值)。注意有起点和终点指定范围包含起点不包含终点,这是Python的惯例。

join

join是split方法的逆方法。用来连接序列中的元素。

>>> dirs='','user','access','ssuccess'
>>> '/'.join(dirs)
'/user/access/ssuccess'
lower

返回字符串的小写字母版。

>>> name='Gumby'
>>> names=['gunby','smith']
>>> if name.lower()in names:print('Found it')
replace

replace返回某字符串的所有匹配项均被替代之后的字符串。

>>> names='you are so clever'
>>> names.replace('so','very')
'you are very clever'
split

是join的逆方法,用来将字符串分割成序列。

>>> '1+2+3+4+5+6'.split('+')
['1', '2', '3', '4', '5', '6']
>>> '1 2 3 4 5 6 7 8 9 '.split()
['1', '2', '3', '4', '5', '6', '7', '8', '9']

如果不提供任何分隔符,程序会把所有空格作为分隔符(空格、制表符、换行等)

strip

strip返回去除两侧空格(不包括内部)的字符串。也可以指定需要去除的字符,将他们类为参数来去除。

>>> '****name*is****lalalal******!!!!!!'.strip("*!")
'name*is****lalalal'

只能去除两侧的字符。

translate

translate和replace方法一样,可以替代字符串中的某些部分,但是和前者不同的是,translate只处理单个字符。它的优势在于同时可以处理多个替代。在使用translate之前,需要制作一张转换表。转换表中是以某字符替代某字符的对应关系。因为这个表多大256项,因此最好使用string模块中的maketrans函数。maketrans接受两个参数,其实是两个等长的字符串,两个字符串中对应字符互相替换。

小结

字符串方法很多,有的较常使用,有些是用的很少。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值