本文来源:《python核心编程》序列:字符串、列表和元组
1.序列
序列类型操作符:
seq[index],seq[index1:index2],seq*expr,seq1+seq2,obj in seq,obj not in seq
序列类型工厂转化函数:
list(iter),str(obj),unicode(obj),basestring(),tuple(iter)
序列类型的可用内建函数
enumerate(iter)
len(seq)
max(iter,key=None) or max(arg0,arg1...,key=NOne)
min...
reverse(seq)
sorted(iter,func=None,key=None,reverse=False)
sum(seq,init=0)
zip([it0,it1...intN])
来看两个例子:
1)
s='foobar'
for i,t in enumerate(s):
print i, t
0 f
1 o
2 o
...
2)zip()
s,t='foa','obr'
zip(s,t)
[(f,o),(o,b),(a,r)]
2.字符串
成员操作符:in,not in
字符转换函数:ascii对应字符和数值之间的转换
>>>chr(65)
'A'
>>>ord('a')
97
字符串内建函数:参见string类
注意,python中字符串没有使用\0作为结束符,我们也不需要考虑字符串的结束问题。
另外,python中,字符串是不可变化的类型。只能通过重新创建字符串对象来改变某一个变量对应的字符串。
3.列表
创建:[]
访问:list[index]
更新:append
删除:del\remove
列表创建:
sample_list = ['a',1,('a','b')]
num_inc_list = range(30):创建列表
sample_list = [ initial_value for i in range(10)]:创建列表
sample_list = [initial_value]*list_length:创建某个长度的列表
list=list(tuple):使用集合对象创建列表
列表访问:
list_length = len(sample_list):获得列表长度
列表更新:
list.extend([1,2,3]):延长列表
list=list1+list2:列表的连接
list.insert(0,“start”):向列表中插入一个元素
list.reverse():列表反转
list.sort():列表排序
list.rsort():列表排序
list[i:j]=[2,3,4]:列表索引赋值
列表删除:
del sample_list[0]:删除列表某个元素
list.pop():列表删除最后一个元素
3.2)操作符
序列类型操作符:切片[::]、[:]、[],成员关系操作符(in,not in);链接操作符(+);重复操作符(*)
列表类型操作符和列表解析:[]
3.3)内建函数
标准类型函数:cmp()
序列类型函数:len(),max(),min(),sorted(),reversed(),enumerate(),zip(),sum(),list(),tuple
列表类型内建函数:range()
列 表 函 数 | 作 用 |
list.append(obj) | 向列表中添加一个对象obj |
list.count(obj) | 返回一个对象obj在列表中出现的次数 |
list.extend(seq)a | 把序列seq的内容添加到列表中 |
list.index(obj, i=0, j=len(list)) | 返回list[k] == obj的k值,并且k的范围在 i<=k<j;否则引发ValueError异常 |
list.insert(index, obj) | 在索引量为index的位置插入对象obj |
list.pop(index=−1)a | 删除并返回指定位置的对象,默认是最后一个对象 |
list.remove(obj) | 从列表中删除对象obj |
list.reverse() | 原地翻转列表 |
list.sort(func=None, key=None,reverse= False)b | 以指定的方式排序列表中的成员,如果func和key参数指定,则按照指定的方式比较各个元素,如果reverse标志被置为True,则列表以反序排列 |
可能的错误:
如果在进行python编程的时候,得到错误:Python: Attribute Error - 'NoneType' object has no attribute
原因:
3.4)列表的特殊性
列表有容器可变的特点,可以用来构建堆栈和队列。
3.5)与string的转化
string转化成list:list(mystring)
list转化成string:string.jion(mylist,"")
4.元组
概述:元组的创建、删除、访问、更新。
元组操作符和内建函数
创建、重复、连接
成员关系、切片
内建函数
操作符
像列表一样,元祖也没有它自己专用的操作符和内建函数。另外,sort、append等操作,因为元组具有不可变性,所以这些操作对元组是不可行的。
另外,元组是不可变的,但是它可以执行“重复”操作,而且元组是不可便的,但是元组所包含的可变对象是可变的。
所有的多对象的、逗号分割的、没有明确用符号定义的,这些集合默认的类型都是元组。