beginning python summary chapter 2 - 列表和元组

来源:互联网 发布:windows自带游戏有哪些 编辑:程序博客网 时间:2024/05/15 03:16

0、序列是一种其包含的元素都被编号的数据结构。典型的序列有列表,字符串和元组。在这几种序列中,列表是可以被修改的,但元组和字符串是不能修改的(一旦被创建,它们就是固定的)。

1、在Python中最基本的数据结构是序列(sequence),序列中的每个元素被分配一个数字---元素的位置,也叫索引。第一个索引是    0,第二个索引是1,如此递推。序列中的最后一个条目被标记为-1,倒数第二是-2,如此递推。

2、序列:eg:edward = ['Edward Gumby', 42],序列也能包含其他的序列。序列的访问:edward[0],edward[-1]...字符串能够直接使用索引,而不需要一个变量引用它们:'Hello'[1]。如果一个函数调用返回一个序列,你能对它使用索引:fourth = raw_input('Year: ')[3] 。

3、切片:用切片来访问一定范围的元素。tag = '<a href="http://www. pythonorg">Python web site</a>',eg: tag[9:30],tag[32,-4],第一个索引号是你要提取的元素中的第一个元素的编号。

      如果切片中左边的索引号如果比右边的靠后,那么结果就是一个空的序列。eg: numbers[-3:0]   []

      技巧:如果切片持续到序列的结尾,你可以简单的置空后一个索引号.eg:numbers[-3:]。如果切片从开头开始,可以置空第一个索引  号。eg:numbers[:3]。如果你复制整个序列,你可以置空两个索引号。eg:numbers[:]。

      为切片设置步长,eg:numbers[0:10:2],步长不能为0,但可以为负数,这就意味着从右到左提取元素。eg:number[::-2]。

      当使用一个负数作为步长,你必须让开始点高于结束点。对于一个正值步长,是从开始点向结束点移动,对于负值步长则是从结束点向开始点移动。


4、序列的加法:可以用“+”连接两种相同类型的序列。
     序列的乘法:用一个数字X,去乘以序列使这个序列被重复X次。
5、一个空的列表的形式是两个中括号[],None是python的空值。


6、成员关系:查看一个值是否在序列中使用in运算符,如果在,返回true,不在,返回false.eg:>>> permissions = 'rw'>>> 'w' in  permissions True


7、长度,最小值,最大值:Len函数返回序列中包含的元素的数量,min和max则分别返回序列中最大和最小的元素。


8、list函数:用于列出所有的序列而不只是字符串。
     改变列表:项目赋值:eg:>>> x = [1, 1, 1]   >>> x[1] = 2
     删除元素:   >>> del x[1]
     赋值时切片:>>> l = ['h','e','l','l','o'] >>> l[2:] = list('arw'),可以用和原序列不等长的序列替换切片:l[2:] = list('python'),切片赋值语句能被用于插入元素而不需要代替任何原来的元素:l[1:1] = list('eee'),通过切片删除元素:l[1:4] = []


9、列表的方法:方法调用:object.method(arguments) 
     append方法被用来追加一个对象到列表的末尾,l.append('over')
     Count方法统计一个列表中的元素的个数,l.count('p')
     extend方法允许你向一个序列一次追加另一个序列中的多个值,>>> a = [1, 2,3]>>> b = [4, 5, 6]>>> a.extend(b),extend方法和连接“+”的不同之处在于:被扩展的列表是在原来的列表的基础上被修改了,而在连接时则是返回一个新的列表。
     index方法被用来在列表中查找一个值第一次出现的索引位置,l.index('p')
     insert方法被用来向列表插入一个对象,l.insert(3,'four')
     pop方法移除列表中的一个元素(默认是最后一个)并且放回元素的值,l.pop(),pop方法是唯一修改一个列表并且返回一个值(而不是None)的列表方法.
     remove方法被用来移除第一次出现的某个值,l.remove('l'),remove是一个没有返回值的原位置改变的方法.
     reverse方法将列表中的元素倒置存放,l.reverse().
     sort方法被用来在原地对列表进行排序,l.sort()很有效率的复制整个列表的方法:y = x[:],而y = x只是让x和y都指向同一个列表。
     sorted方法用来得到已排序的列表的副本,返回一个列表:y = sorted(x)


10、高级排序:sort方法有两个参数——键(key)和reverse,如果你要使用它们就要通过名字来指定,key不是用来决定对象的大小而是为每个元素创建一个键,然后所有的元素根据键来排序,l.sort(key=len),使用len做为健函数。参数reverse是简单的真假值,用来指示列表是否要反向排序。l.sort(reverse=True)

 

11、元组:常量序列。()表示空元组。包含一个值的元组必须使用一个逗号,eg:42,(42,).

12、元组函数:tuple,以一个序列作为参数并把它转换成一个元组,如果参数是一个元组那么就被原样返回。tuple(l).
13、元组的访问,切片和序列一样,eg:x[1],x[0:2],x[:]