python 列表小总结
2014-11-22 22:18
363 查看
列表是一种可变的数据类型,他由一系列的元素组成,这一系列可以使任何类型的元素,可以是不同类型的元素。列表,不过是一个有序的序列而已,用来组织一堆有规则或者无规则的数据。
1、列表创建和赋值:
list_name=[element1,element2,element3,...]
列表中可以添加任何类型的元素,如下的例子:
如上,一个列表中可以添加整数、浮点数、字符、字符串、另一个列表、元组等各种不同的数据类型。
2、添加元素:
列表对象在Python中是List类,python为List类提供了append方法,用来在列表的尾部添加一个元素,如下:
append的参数类型为object,即可以为List添加任何类型的元素。使用点号来调用append方法。
List类还有一个方法insert,用于将元素插入到列表中指定索引的位置,语法如insert(index,value),即往index索引的位置插入值为value的元素,后边的元素依次往后移。如下:
3、删除元素:
列表的删除使用remove()方法,该方法用于移除列表中指定值的第一个匹配值。如果元素不存在,python将抛出ValueError异常。如下:
从一个列表中删除元素还可以用del语句来实现,该语句将删除列表中指定索引位置的元素。如下:
【补刀】:使用pop()方法也可以删除指定位置的列表元素,例如:
4、分片(slice)操作:
就像dota中每个英雄都有一个灵魂技能一样,我感觉分片操作就是列表的灵魂技能。这个操作可以随意的取出列表中的任何一部分。分片操作中有两个索引,指的是从第一个索引到第二个索引中所指定的所有元素(不包含第二个索引所指向的元素)。格式如:list_name[m:n]。
如果没有指定分片的后一个索引,那么指的是从第一个索引元素到最后一个元素。
接上边的代码,这里list_1[2:2],用一个与原序列不等长的序列将一个分片替换掉,这里替换的是一个空的分片。实际上的操作其实是插入了一个序列。
以此类推,使用这种方法来删除元素其实也是可行的。
5、负数索引:
在列表中让我感觉到跟普通的C数组最大不同的就是使用负数的索引。负数索引从列表的尾部开始计数,最尾端的元素索引表示为-1,然后依次往前是-2,-3....以此类推。
分片处理之中也是可以使用负数的索引的,其实我觉得python解释的时候负数与正数都是一样的,只是按照不同的规则表示的列表中的元素而已。
如上代码,有了负数索引的规定,其他的一切操作都是与正数相同的,我想这个机制大概只是为了让程序员更方便而定义的吧。
【补刀】:要搞懂负数索引的机制可以参考我的原创文章《根据源码分析python列表的插入、抛出操作时当条目索引为负数时的处理》
6、列表的连接:
列表连接总共有两种实现方式,一种是调用extend()方法,这个方法其实很简单,以一个列表作为参数,这个列表就是接在另一个列表之后的列表。
最神奇的的是,列表的连接甚至可以使用运算符+、+=或*。来进行列表操作。如下:
7、列表的查找:
这个就没啥技术含量了。。。无非就是按照index找value,按照value找index。
index()这个方法就是根据value找index的方法。返回值就是固定值对应的index。‘
8、列表的排序:
列表的排序需要使用List类中的sort()方法。sort方法并不是返回一个列表,是直接修改原来的列表。所以如果不想被修改的话最好有备份下。
sort()方法默认是按照升序排列的:
sort方法有一个可选的参数reverse,reverse是反转的意思。这个值默认是False,表示升序排序。如果设置为True,则进行降序排序。
刚才异想天开,sort方法对于不同的数据类型是怎么排序的呢?果断试了一下。。。
事实证明python是先对不同的数据类型排序,然后对每种数据类型再进行分别排序的。
9、列表的反转:
reverse()方法用于将列表中的元素反向存放:
初学python不久,看到此文,感觉总结得比较详细,能让读者对python列表的基本用法有一个整体的认识。所以转载来与大家分享!
正文转自 http://m.blog.chinaunix.net/uid-27040911-id-3440198.html
1、列表创建和赋值:
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]
3、删除元素:
列表的删除使用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]
【补刀】:使用pop()方法也可以删除指定位置的列表元素,例如:
>>> list1 = ['a', 'b', 'c', 22 ] >>> list1.pop( 1 ) #可以删除索引为1的元素 'b' >>> print list1 ['a', 'c', 22] >>> list1.pop( -2 ) #可以删除索引为(-2 + 3)的元素 'c' >>> print list1 ['a', 22]
4、分片(slice)操作:
就像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]=['h','e','l','l','o'] >>> print list_1 ['p', 'y', 'h', 'e', 'l', 'l', 'o', 'q', 't']
接上边的代码,这里list_1[2:2],用一个与原序列不等长的序列将一个分片替换掉,这里替换的是一个空的分片。实际上的操作其实是插入了一个序列。
以此类推,使用这种方法来删除元素其实也是可行的。
5、负数索引:
在列表中让我感觉到跟普通的C数组最大不同的就是使用负数的索引。负数索引从列表的尾部开始计数,最尾端的元素索引表示为-1,然后依次往前是-2,-3....以此类推。
>>> test_list=['hello','world','python'] >>> print test_list[-2] world
分片处理之中也是可以使用负数的索引的,其实我觉得python解释的时候负数与正数都是一样的,只是按照不同的规则表示的列表中的元素而已。
>>> 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]
如上代码,有了负数索引的规定,其他的一切操作都是与正数相同的,我想这个机制大概只是为了让程序员更方便而定义的吧。
【补刀】:要搞懂负数索引的机制可以参考我的原创文章《根据源码分析python列表的插入、抛出操作时当条目索引为负数时的处理》
6、列表的连接:
列表连接总共有两种实现方式,一种是调用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]
7、列表的查找:
这个就没啥技术含量了。。。无非就是按照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
8、列表的排序:
列表的排序需要使用List类中的sort()方法。sort方法并不是返回一个列表,是直接修改原来的列表。所以如果不想被修改的话最好有备份下。
sort()方法默认是按照升序排列的:
>>> list_1=[3,4,2,5,1] >>> list_1.sort() >>> print list_1 [1, 2, 3, 4, 5]
sort方法有一个可选的参数reverse,reverse是反转的意思。这个值默认是False,表示升序排序。如果设置为True,则进行降序排序。
刚才异想天开,sort方法对于不同的数据类型是怎么排序的呢?果断试了一下。。。
>>> 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)]
事实证明python是先对不同的数据类型排序,然后对每种数据类型再进行分别排序的。
9、列表的反转:
reverse()方法用于将列表中的元素反向存放:
>>> list_1=[1,2,3,4,5] >>> list_1.reverse() >>> print list_1 [5, 4, 3, 2, 1]
初学python不久,看到此文,感觉总结得比较详细,能让读者对python列表的基本用法有一个整体的认识。所以转载来与大家分享!
正文转自 http://m.blog.chinaunix.net/uid-27040911-id-3440198.html
相关文章推荐
- python3.2列表操作总结
- Python列表和字典的方法总结
- python基础教程总结1——列表和元组
- python 列表总结
- Python操作符重载总结&列表模型
- python列表和字典的方法总结
- python列表和元组总结
- python元组、列表的异同总结
- python列表总结
- 『Python』序列学习总结之一 ——列表
- python学习总结——列表
- python list(列表)操作用法总结
- python list列表 方法总结
- python元组、列表的异同总结
- [python01] python列表,元组对比Erlang的区别总结
- 学习总结-python列表去重
- Python数据结构:序列(列表[]、元组())与映射(字典{})语法总结
- Python数据结构:序列(列表[]、元组())与映射(字典{})语法总结
- python list(列表)操作用法总结
- Python排序总结:列表、字典、包含字典的列表、包含元组的列表排序