分类: 系统运维
2012-12-14 22:01:07
点击(此处)折叠或打开
- list_name=[element1,element2,element3,...]
列表中可以添加任何类型的元素,如下的例子:
如上,一个列表中可以添加整数、浮点数、字符、字符串、另一个列表、元组等各种不同的数据类型。点击(此处)折叠或打开
- >>> list=[1,2.5,'a','abc',[5,6],(7,8)]
- >>> print list
- [1, 2.5, 'a', 'abc', [5, 6], (7, 8)]
2、添加元素:
列表对象在Python中是List类,python为List类提供了append方法,用来在列表的尾部添加一个元素,如下:点击(此处)折叠或打开
- >>> list_1=[1]
- >>> list_1.append(2)
- >>> list_1.append('hello')
- >>> print list_1
- [1, 2, 'hello']
append的参数类型为object,即可以为List添加任何类型的元素。使用点号来调用append方法。List类还有一个方法insert,用于将元素插入到列表中指定索引的位置,语法如insert(index,value),即往index索引的位置插入值为value的元素,后边的元素依次往后移。如下:点击(此处)折叠或打开
- >>> list_2=[1,2,3,4,5,6]
- >>> list_2.insert(1,'hello')
- >>> list_2.insert(4,'world')
- >>> print list_2
- [1, 'hello', 2, 3, 'world', 4, 5, 6]
列表的删除使用remove()方法,该方法用于移除列表中指定值的第一个匹配值。如果元素不存在,python将抛出ValueError异常。如下:
点击(此处)折叠或打开
- >>> list=[1,2,3,4,5]
- >>> list.remove(3)
- >>> print list
- [1, 2, 4, 5]
从一个列表中删除元素还可以用del语句来实现,该语句将删除列表中指定索引位置的元素。如下:
点击(此处)折叠或打开
- >>> list=[1,2,3,4,5]
- >>> del list[2]
- >>> print list
- [1, 2, 4, 5]
就像dota中每个英雄都有一个灵魂技能一样,我感觉分片操作就是列表的灵魂技能。这个操作可以随意的取出列表中的任何一部分。分片操作中有两个索引,指的是从第一个索引到第二个索引中所指定的所有元素(不包含第二个索引所指向的元素)。格式如:list_name[m:n]。如果没有指定分片的后一个索引,那么指的是从第一个索引元素到最后一个元素。点击(此处)折叠或打开
- >>> list_1=['p','y','t','h','o','n']
- >>> list_1[2:]=['q','t']
- >>> print list_1
- ['p', 'y', 'q', 't']
接上边的代码,这里list_1[2:2],用一个与原序列不等长的序列将一个分片替换掉,这里替换的是一个空的分片。实际上的操作其实是插入了一个序列。点击(此处)折叠或打开
- >>> list_1[2:2]=['h','e','l','l','o']
- >>> print list_1
- ['p', 'y', 'h', 'e', 'l', 'l', 'o', 'q', 't']
以此类推,使用这种方法来删除元素其实也是可行的。
在列表中让我感觉到跟普通的C数组最大不同的就是使用负数的索引。负数索引从列表的尾部开始计数,最尾端的元素索引表示为-1,然后依次往前是-2,-3....以此类推。分片处理之中也是可以使用负数的索引的,其实我觉得python解释的时候负数与正数都是一样的,只是按照不同的规则表示的列表中的元素而已。点击(此处)折叠或打开
- >>> test_list=['hello','world','python']
- >>> print test_list[-2]
- world
点击(此处)折叠或打开
- >>> test_list=[1,2,3,4,5,6]
- >>> list_2=test_list[1:4]
- >>> list_3=test_list[-3:-1]
- >>> list_4=test_list[0:-2]
- >>> print list_2
- [2, 3, 4]
- >>> print list_3
- [4, 5]
- >>> print list_4
- [1, 2, 3, 4]
如上代码,有了负数索引的规定,其他的一切操作都是与正数相同的,我想这个机制大概只是为了让程序员更方便而定义的吧。
列表连接总共有两种实现方式,一种是调用extend()方法,这个方法其实很简单,以一个列表作为参数,这个列表就是接在另一个列表之后的列表。点击(此处)折叠或打开
- >>> list_1=[1,2,3,4,5]
- >>> list_2=[6,7,8]
- >>> list_1.extend(list_2)
- >>> print list_1
- [1, 2, 3, 4, 5, 6, 7, 8]
最神奇的的是,列表的连接甚至可以使用运算符+、+=或*。来进行列表操作。如下:点击(此处)折叠或打开
- >>> list_1=[1,2,3]
- >>> list_2=[4,5,6]
- >>> list_3=list_1+list_2
- >>> print list_3
- [1, 2, 3, 4, 5, 6]
- >>> list_1+=list_2
- >>> print list_1
- [1, 2, 3, 4, 5, 6]
- >>> list_4=list_1*3
- >>> print list_4
- [1, 2, 3, 4, 5, 6, 1, 2, 3, 4, 5, 6, 1, 2, 3, 4, 5, 6]
8、列表的排序:这个就没啥技术含量了。。。无非就是按照index找value,按照value找index。index()这个方法就是根据value找index的方法。返回值就是固定值对应的index。‘点击(此处)折叠或打开
- >>> list_1=[4,3,2,1]
- >>> print list_1.index(3) #这句是根据value找index
- 1
- >>> print list_1[3] #这句是根据index找value
- 1
- >>> 4 in list_1 #这是判断一个元素是否在列表中
- True
列表的排序需要使用List类中的sort()方法。sort方法并不是返回一个列表,是直接修改原来的列表。所以如果不想被修改的话最好有备份下。
9、列表的反转:sort()方法默认是按照升序排列的:sort方法有一个可选的参数reverse,reverse是反转的意思。这个值默认是False,表示升序排序。如果设置为True,则进行降序排序。点击(此处)折叠或打开
- >>> list_1=[3,4,2,5,1]
- >>> list_1.sort()
- >>> print list_1
- [1, 2, 3, 4, 5]
刚才异想天开,sort方法对于不同的数据类型是怎么排序的呢?果断试了一下。。。事实证明python是先对不同的数据类型排序,然后对每种数据类型再进行分别排序的。点击(此处)折叠或打开
- >>> list_1=[(9,1),'a','abc',5,4,2,7,8]
- >>> list_1.sort()
- >>> print list_1
- [2, 4, 5, 7, 8, 'a', 'abc', (9, 1)]
reverse()方法用于将列表中的元素反向存放:点击(此处)折叠或打开
- >>> list_1=[1,2,3,4,5]
- >>> list_1.reverse()
- >>> print list_1
- [5, 4, 3, 2, 1]
总算码完了,累的手疼了。这样以后经常来看看应该就不会忘了。