python的序列之列表

列表是一种非常灵活的数据结构,相对于字符串和元组,其是可变的灵活的容器,可以包含python的标准类型和用户定义的对象,并且同一个列表中的对象可以是不同类型,列表的元素可以是列表。

列表上的可执行操作也很多:pop,empt,sort,reverse;添加或者删除元素;与其它列表结合或者分成多个列表;对单独一个元素或者多个元素执行insert,update,remove操作。

1、创建方式:

(1)[]:罗列其各个元素。

(2)使用工厂方法:list('abc') 创建的列表为['a','b','c']

2、访问:通过直接索引值或者切片操作符。

   更新:由于列表是可变的,所以可以用索引值或者切片操作符取出元素直接赋值更新;或者使用append()方法追加元素。

   删除:已知索引:del aList[1]

         已知元素:aList.remove('abc')

         删除整个列表:del aList

         

3、操作符

(1)比较操作符的逻辑原则:对两个列表的元素进行比较;如果是同类型则比较其值;如果是不同类型,双方都是数字则对数值比较,若一方是数字,则另一方大(数字是“最小的”,否则按照字母顺序比较;如果一个列表首先到达末尾,则另一个较长的列表大)。

(2)连接操作符(+):连接操作符左右两边对象的类型必须相同,例如aList+'abc'是错误的,要用aList.append()。

     一般用list.extend()方法代替连接操作符,因为前者直接将新列表添加到原列表里,而后者会新建一个列表,list.extend()方法也可做复合赋值运算,类似+=。

4、列表解析:

[i for i in range(8) if i%2==0]

5、内建函数:

(1)标准类型函数:cmp()

(2)序列类型函数:len(),max(),min(),sorted(),reversed(),enumerate(),zip(),sum(),list(),tuple()。

例:a=[6,4,5]

reduce(operator.add,a) //输出15

sum(1) //输出15

sum(a,5) //输出20

list(),tuple():通过浅拷贝在列表和元组之间转换,常用于将元组转换成列表,修改后再将元组转成列表。要注意每次转换都生成新的对象。

6、列表类型的内建函数:通过dir(list)或者dir([])获得列表所有的方法和属性。

list.append(obj):向列表中添加对象obj

list.count(obj):返回obj在列表中出现的次数

list.extend(seq):将序列seq的内容添加到列表中

list.index(obj,i=0,j=len(list)):返回obj在i与j之间的索引值

list.insert(index,obj):在index的位置插入obj(index方法对于不存在的元素会报错,可用in判断后使用)

list.pop(index=-1):删除并且返回指定位置的对象,默认是最后一个对象

list.remove(obj):删除对象obj

list.reverse():原地翻转列表

list.sort(func=None,key=None,reverse=False):按照func和key指定的方式排序,如果reverse为True,则逆序排列。

7、注意:可以改变对象值的可变对象的方法没有返回值,例如sort()、extend()、reverse()在列表中是原地执行,python2.4以后的sorted()和reversed()可返回新的对象,但像不可变的字符串的操作有返回值。

8、用列表可构建其它数据结构:如堆栈和队列。

原文地址:https://www.cnblogs.com/limingluzhu/p/2722075.html