Python核心编程 6.序列:字符串、列表和元组

6.1 序列python

6.1.2 序列类型操做符git

seq[ind]:得到下标为ind的元素api

seq[ind1:ind2]:得到下标从ind1到ind2间的元素集合函数

seq*expr:序列重复expr次spa

seq1+seq2:链接序列seq1和seq2code

obj in seq:判断obj元素是否包含在seq中对象

obj not in seq:判断obj元素是否不包含在seq中递归

 

--成员关系操做符(in, not in)索引

成员关系操做符使用来判断元素是否属于一个序列的。好比对字符串类型来讲,就是判断一个字符是否属于这个字符串,对列表和元组类型来讲,就表明了一个对象是否属于该对象是否属于该对象序列。in/not in 操做符的返回值通常来说就是True/False,知足成员关系就返回True, 不然返回False。ip

 

--切片操做符([], [:], [::])

 

我对切片一直运用不太熟练,因此这里仔细研读一下。

>>> a = '123456789'
>>> a[2:4]
'34'
>>> a[2:-4]
'345'
>>> a[2:]
'3456789'
>>> a[-2:]
'89'
>>> a[:2]
'12'
>>> a[:-2]
'1234567'

list[a:b]的这种类型:截取list中的元素从a开始到b结束。若是a为空,则默认为0;若是b为空,则默认为序列的长度。

>>> a[2::]
'3456789'
>>> a[::2]
'13579'
>>> a[2::3]
'369'

list[a::b]的这种类型:从第a个开始,隔b取一次元素。若是a或者b为空,则默认为0。

>>> a[:5:2]
'135'
>>> a[:5:-2]
'97'

list[:a:b]的这种类型:若b为正数,则前a个数,每隔b个数取值;若b为负数,则从序列最后到a这个元素,每隔b个数取值。

 

6.1.3 内建函数(BIFs)

序列自己就内涵了迭代的概念,之因此会这样,是由于迭代这个概念就是从序列,迭代器,或者其余支持迭代操做的对象泛化得来的。因为python的for循环能够遍历全部的可迭代类型。

--类型转换

list(iter)把可迭代对象转换为列表

str(obj)把obj对象转换成字符串

tuple(iter)把一个可迭代对象转换成一个元组对象

 

为何Python里面不简单的把一个对象转换成另外一个对象呢?一旦一个python的对象被创建,咱们就不能更改其身份或类型了。若是吧一个列表对象传给list()函数,便会建立这个对象的一个浅拷贝,而后将其插入新的列表中。

所谓浅拷贝就是只拷贝了对对象的索引,而不是从新创建了一个对象!若是想要彻底的拷贝一个对象(包括递归),则须要用到深拷贝。

 

内建函数

 

 

 

enumerate(iter):接受一个可迭代对象做为参数,返回一个 enumerate 对象(同时也是一个迭代器),该对象生成由 iter 每一个元素index 值 和 item 值组成的元组

 

len(seq):返回 seq 的长度

max(iter,key=None) or max(arg0,arg1...,key=None):返回iter或(arg0,arg1,...)中的最大值,若是指定了key,这个 key 必须是一个能够传给 sort()方法的,用于比较的回 调函数.

 

min(iter, key=None) or min(arg0, arg1.... key=None):返回 iter 里面的最小值;或者返回(arg0,arg2,...)里面的最小值;若是指定了 key,这个 key 必须是一个能够传给 sort()方法的,用于比较的回调函数.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

reversed(seq):接受一个序列做为参数,返回一个以逆序访问的迭代器

sorted(iter, func=None, key=None, reverse=False):接受一个可迭代对象做为参数,返回一个有序的列表;可选参数 func,key 和 reverse 的含义跟 list.sort()内建函数的参数含义一 样.

 

sum(seq, init=0):返 回 seq 和 可 选 参 数 init 的 总 和 , 其 效 果 等 同 于 reduce(operator.add,seq,init)

 

 

 

 

 

 

 

 

 

 

zip([it0, it1,... itN]):返回一个列表,其第一个元素是 it0,it1,...这些元素的第 一个元素组成的一个元组,第二个...,类推.

>>> alist = ['a', 'b', 'c']
>>> blist = [1,2,3]
>>> z = zip(alist, blist)
>>> z
[('a', 1), ('b', 2), ('c', 3)]
>>> for m,n in zip(alist, blist):
...     print m, n
...
a 1
b 2
c 3
>>> for m,n in enumerate(alist):
...     print m, n
...
0 a
1 b
2 c

 

 

 

 

6.2 字符串

--字符串的建立和赋值

建立一个字符串就想使用一个标量同样简单.

>>> aString = 'Hello world!'
>>> anotherString = 'Python is cool!'
>>> print aString
Hello world!
>>> anotherString
'Python is cool!'
>>> s = str(range(4))
>>> s
'[0, 1, 2, 3]'

--访问字符串的值(切片的方式)

 

6.6 内建函数

 

 

 

 

string.capitalize() 把字符串的第一个字符大写

string.center(width) 返回一个原字符串居中,并使用空格填充至长度width的新字符串

string.count(str, beg = 0, end = len(string)) 返回str在string里面出现的次数,若是beg或者end指定则返回指定范围内str出现的次数

string.endswith(obj, beg = 0, end = len(string))检查字符串是否以obj结束,若是beg或者end指定则检查指定的范围内是否以obj结束,是返回True,不然返回False

string.find(str, beg = 0, end = len(string)) 检查str是否包含在string中,若是beg和end指定范围,则检查是否包含在范围内,若是是返回开始的索引值,不然返回-1

string.index(str, beg = 0, end = len(string)) 跟find方法同样,只不过若是str不在string中会报一个异常

string.isalnum() 若是string至少有一个字符而且全部字符都是字母或数字则返回True,不然返回False

string.isalpha() 若是string至少有一个字符而且全部字符都是字母则返回True,不然返回False

string.isdigit() 若是string只包含数字则返回True,不然返回False

string.islower() 若是string中包含至少一个区分大小写的字符,而且全部这些字符都是小写,则返回True,不然返回False

string.isnumeric() 若是string中只包含数字字符,则返回True,不然返回False

string.isspace() 若是string中只包含空格,则返回True,不然返回False

等等,不所有抄上来了

 

内建函数

cmp():

>>> a = ['123', 'abc']
>>> b = ['123']
>>> cmp(a,b)
1
>>> cmp(b,a)
-1
>>> cmp(a,a)
0

len(), max(), min()省略

sorted(), reversed():

>>> alist = ['123', '456', 'qwe', '2se']
>>> sorted(alist)
['123', '2se', '456', 'qwe']
>>> for i in reversed(alist):
...  print i
...
2se
qwe
456
123

enumerate(), zip()省略

sum():

>>> alist = [1,2,3.0,5]
>>> sum(alist)
11.0
>>> sum(alist,3)
14.0

 

6.15 列表的特殊特性

相关文章
相关标签/搜索