python的一些知识

  • 格式:doc
  • 大小:909.00 KB
  • 文档页数:39

Python——序列 一、概览 在Python中,最基本的数据结构是序列(sequence)。序列中的每个元素被分配一个序号——即元素的位置,也称为索引。第一个索引是 0,第二个则是 1,以此类推。序列中的最后一个元素标记为 -1,倒数第二个元素为 -2,一次类推。 Python包含 6 中内建的序列,包括列表、元组、字符串、Unicode字符串、buffer对象和xrange对象。本文重点讨论列表和元组,列表和元组的主要区别在于,列表可以修改,元组则不能。 二、通用序列操作 所有序列类型都可以进行某些特定的操作。这些操作包括:索引(indexing)、分片(sliceing)、加(adding)、乘(multiplying)以及检查某个元素是否属于序列的成员(成员资格)。除此之外,Python还有计算序列长度、找出最大元素和最小元素的内建函数。 1. 索引 序列中的所有元素都是有编号的——从 0 开始递增。这些元素可以通过编号分别访问,如下: [python] view plaincopy

1. >>> greeting = 'Hello' 2. >>> greeting[0] 3. 'H'

(字符串就是一个有字符组成的序列。) 使用负数索引时,Python会从右边,也就是从最后 1 个元素开始计数。最后 1 个元素的位置编号是 -1。 [python] view plaincopy

1. >>> greeting[-1] 2. 'o'

字符串字面值能够直接使用索引,而不需要一个变量引用它们。 [python] view plaincopy

1. >>> 'Hello'[1] 2. 'e'

如果一个函数调用返回一个序列,那么可以直接对返回结果进行索引操作。 [python] view plaincopy 1. >>> fourth = raw_input('Year: ')[3] 2. Year: 2005 3. >>> fourth 4. '5'

2. 分片 使用分片操作来访问一定范围内的元素。分片通过冒号相隔的两个索引来实现: [python] view plaincopy

1. >>> numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 2. >>> numbers[3:6] 3. [4, 5, 6] 4. >>> numbers[0:1] 5. [1]

第 1 个索引是需要提取部分的第 1 个元素的编号,而最后的索引则是分片之后剩下部分的第 1 个元素的编号。(第 1 个索引的元素是包含在分片内的,而第 2 个则不包含在分片内。)

如果分片中最左边的索引比它右边的晚出现在序列中,结果就是一个空的序列。 [python] view plaincopy

1. >>> numbers[-3:0] 2. []

为了让分片部分能够包含列表的最后一个元素,可以通过最后一个元素的下一个元素所对应的索引作为边界,或置空最后一个索引即可: [python] view plaincopy

1. >>> numbers[7:10] 2. [8, 9, 10] 3. >>> numbers[-3:] 4. [8, 9, 10]

置空同样适用于序列开始的元素: [python] view plaincopy

1. >>> numbers[:3] 2. [1, 2, 3]

复制整个序列,可以将两个索引都置空: [python] view plaincopy

1. >>> numbers[:] 2. [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

3. 步长 进行分片的时候,分片的开始和结束点需要进行指定。而另外一个参数——步长——通常都是隐式设置的。在普通的分片中,步长是 1。 [python] view plaincopy

1. >>> numbers[0:10:1] 2. [1, 2, 3, 4 ,5 , 6, 7, 8, 9, 10]

如果步长被设置为比 1 大的数,那么就会跳过某些元素。 [python] view plaincopy

1. >>> numbers[0:10:2] 2. [1, 3, 5, 7, 9] 3. >>> numbers[3, 6, 3] 4. [4]

步长不能为 0 —— 那不会向下执行 —— 但步长可以是负数,即从右到左提取元素。 [python] view plaincopy

1. >>> numbers[8:3:-1] 2. [9, 8, 7, 6, 5] 3. >>> numbers[0:10:-2] 4. [] 5. >>> numbers[10:0:-2] 6. [10, 8, 6, 4, 2]

使用一个负数作为步长时,必须让开始点(开始索引)大于结束点。

4. 序列相加 [python] view plaincopy

1. >>> [1, 2, 3] + [4, 5, 6] 2. [1, 2, 3, 4, 5, 6] 3. >>> 'Hello, ' + 'world!' 4. 'Hello, world!'

两种相同类型的序列才能进行连接操作。 [python] view plaincopy

1. >>> [1, 2, 3] + 'world!' 2. Traceback (most recent call last): 3. File "", line 1, in 4. TypeError: can only concatenate list (not "str") to list 5. 乘法 用数字 x 乘以一个序列会生成新的序列,而在新的序列中,原来的序列将被重复 x 次。 [python] view plaincopy

1. >>> 'python' * 5 2. 'pythonpythonpythonpythonpython'

6. 成员资格 为了检查一个值是否在序列中,可以使用 in 运算符。 [python] view plaincopy

1. >>> permissions = 'rw' 2. >>> 'w' in permissions 3. True 4. >>> 'x' in permissions 5. False

7. 长度、最小值和最大值 len函数返回序列中所包含元素的数量、min函数和max函数则分别返回序列中最大和最小的元素。 [python] view plaincopy

1. >>> numbers = [100, 34, 678] 2. >>> len(numbers) 3. 3 4. >>> max(numbers) 5. 678 6. >>> min(numbers) 7. 34 8. >>> max(2, 3) 9. 3 10. >>> min(9, 3, 2, 5) 11. 2

Python——列表,元组 一、简介 列表(list)是Python以及其他语言中最常用到的数据结构之一。Python使用使用中括号 [ ] 来解析列表。列表是可变的(mutable)——可以改变列表的内容。 二、基本的列表操作 列表可以使用所有适用于序列的标准操作,例如索引、分片、连接和乘法。本文介绍一些可以改变列表的方法。 1. list 函数 通过 list(seq) 函数把一个序列类型转换成一个列表。 >>> list('hello') ['h', 'e', 'l', 'l', 'o'] list 函数使用于所有类型的序列,而不只是字符串。

2. 改变列表:元素赋值 使用索引标记来为某个特定的、位置明确的元素赋值。 >>> x = [1, 1, 1] >>> x[1] = 2 >>> x [1, 2, 1] 不能为一个位置不存在的元素进行赋值。

3. 删除元素 从列表中删除元素也很容易:使用 del 语句来实现。 >>> names = ['Alice', 'Beth', 'Cecil', 'Dee-Dee', 'Earl'] >>> del names[2] >>> names ['Alice', 'Beth', 'Dee-Dee', 'Earl'] 除了删除列表中的元素,del 语句还能用于删除其他元素。

4. 分片赋值 >>> name = list('Perl') >>> name ['P', 'e', 'r', 'l'] >>> name[2:] = list('ar') >>> name ['P', 'e', 'a', 'r'] 在使用分片赋值时,可以使用与原序列不等长的序列将分片替换:

>>> name = list('Perl')