您的位置:首页 > 编程语言 > Python开发

python 基础知识(字符串 序列)(2)

2013-06-25 11:37 429 查看
列表方法:

1. append 方法

>>> lst = [1,2,3]

>>> lst.append(4)

>>> lst

[1, 2, 3, 4]

>>> xc=lst.append(5)

>>> xc

>>> print xc

None

>>> lst

[1, 2, 3, 4, 5]

>>> xc=lst

>>> xc

[1, 2, 3, 4, 5]

append 方法只修改了原来的列表,无返回,结果为None,直接赋值的时候可以

2.count 方法

统计某个元素在列表中出现的次数

>>> ['to','asd','er','ww'].count('to')

1

>>> x=[[1,2],1,2,1,[1,2]]

>>> x.count(1)

2

>>> x.count([1,2])

2

3. extend 方法

在列表的末尾一次性的追加另一个序列中的多个值,换句话说,可以用新列表扩展原有的列表

>>> a=[1,2,3]

>>> b=[4,5,6]

>>> a.extend(b)

>>> a

[1, 2, 3, 4, 5, 6]

>>> a+b ------ a=a+b 也可以实现extend的效果 但是连接操作的效率会比extend方法低

[1, 2, 3, 4, 5, 6, 4, 5, 6]

>>> a

[1, 2, 3, 4, 5, 6]

分片方法也可以实现extend 但是可读性降低

>>> a=[1,2,3]

>>> b=[4,5,6]

>>> a[len(a):]=b

>>> a

[1, 2, 3, 4, 5, 6]

4. index 方法

从列表中找出某个值第一个匹配项的索引位置

>>> knights=['We','are','the','knights','who','say','ni']

>>> knights.index('who')

4

>>> knights[4]

'who'

>>> knights.index('qiaoc')

Traceback (most recent call last):

File "<pyshell#27>", line 1, in <module>

knights.index('qiaoc')

ValueError: 'qiaoc' is not in list

注意:当查找不存在的项时则报错

5.insert 方法

用于将对象插入到列表中

>>> numbers=[1,2,3,5,6,7]

>>> numbers.insert(3,'four')

>>> numbers

[1, 2, 3, 'four', 5, 6, 7]

insert 方法也能用分片来实现

>>> numbers=[1,2,3,5,6,7]

>>> numbers[3:3]=['four']

>>> numbers

[1, 2, 3, 'four', 5, 6, 7]

6.pop 方法

移除列表中的一个元素(默认是最后一个),并且返回该元素的值

>>> x=[1,2,3]

>>> x.pop()

3

>>> x

[1, 2]

>>> x.pop(0)

1

>>> x

[2]

注意:pop方法是唯一一个既能修改列表又返回元素值(除了None)的列表方法

(可以模拟实现 栈 先进先出)

7. remove 方法

移除列表中的某个值的第一个匹配项

>>> x=['to','be','or','not','to','be']

>>> x.remove('be')

>>> x

['to', 'or', 'not', 'to', 'be']

>>> x.remove('bee')

Traceback (most recent call last):

File "<pyshell#43>", line 1, in <module>

x.remove('bee')

ValueError: list.remove(x): x not in list

注意:移除不存在的元素会报错

8.reverse 方法

将列表中的元素反向存放

>>> x=[1,2,3]

>>> x.reverse()

>>> x

[3, 2, 1]

9. sort 方法

在原位置对列表进行排序,在“原位置排序”意味着改变原来的列表,从而让其中的元素能按一定的顺序排列,而不是简答的返回一个已经排序的列表副本

>>> x=[4,5,2,1,9,6]

>>> x.sort()

>>> x

[1, 2, 4, 5, 6, 9]

----------------

实现保留原来的列表 和排序后的列表

>>> x=[4,5,2,1,9,6]

>>> y=x.sort()

>>> print y

None

>>> x=[4,5,2,1,9,6]

>>> y=x[:]

>>> y.sort()

>>> x

[4, 5, 2, 1, 9, 6]

>>> y

[1, 2, 4, 5, 6, 9]

注意: 这里y=x[:] 利用分片是很有效率的复制整个列表的方法

只是简单的把x赋值给y是没用的,因为这样做就让x和y都指向同一个列表了

>>> x=[4,5,2,1,9,6]

>>> y=x

>>> y.sort()

>>> x

[1, 2, 4, 5, 6, 9]

>>> y

[1, 2, 4, 5, 6, 9]

另一种获得已排序的列表副本的方法是 sorted 函数

>>> x=[4,5,2,1,9,6]

>>> y=sorted(x)

>>> x

[4, 5, 2, 1, 9, 6]

>>> y

[1, 2, 4, 5, 6, 9]

这个函数可以用于任何序列,却总是返回一个列表

>>> sorted('python')

['h', 'n', 'o', 'p', 't', 'y']

10. 高级排序

内建函数cmp 提供了比较函数的默认实现

>>> cmp(42,32)

1

>>> cmp(99,100)

-1

>>> cmp(2,2)

0

>>> numbers=[5,2,9,7]

>>> numbers.sort(cmp)

>>> numbers

[2, 5, 7, 9]

sort 方法有另外两个可选的参数--key和reverse

参数key和参数cmp类似---必须提供一个在排序过程中使用的函数,然而该函数并不是直接用来确定对象的大小,而是为每个元素创建一个

键,然后所有元素根据键来排序。

>>> x=['aadreas','asdd','sacas','a','as','asda']

>>> x.sort(key=len)

>>> x

['a', 'as', 'asdd', 'asda', 'sacas', 'aadreas']

reverse 关键字是简单的布尔值(True或者False) 用来指明是否进行反向排序

>>> x=[4,2,5,1,6,9]

>>> x.sort(reverse=True)

>>> x

[9, 6, 5, 4, 2, 1]

注意:cmp,key,reverse参数都可以用于sorted函数!

===================================================================================

元组

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

>>> 1,2,3

(1, 2, 3)

>>> (1,2,3) ---- 元组大部分时候用大括号括起来

(1, 2, 3)

空元组可以用没有内容的2个括号表示

>>> ()

()

包括一个值的元组 必须用逗号

>>> 42

42

>>> 42,

(42,)

>>> (42,)

(42,)

tuple函数

功能与list函数基本上是一样的:以一个序列作为参数并把它转换为元组,如果参数是元组那么该参数就会被元样返回

>>> tuple([1,2,3])

(1, 2, 3)

>>> tuple('abc')

('a', 'b', 'c')

>>> tuple((1,2,3))

(1, 2, 3)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: