列表可以存放任何数据类型,特别优秀。

EG:>>> mix = [1,'linyanru',2.13,[1,2,5.6]]   #混合列表

 

列表的“三增三减”

一、插入

1、list.append( )  向列表末尾添加括号内的参数(任何数据类型),原封不动的添加类型,一次只能添加一个参数

2、list.extend( )  在列表末尾扩展括号内的参数(列表),添加列表中的元素变成原列表的元素

3、list.insert(i,..... )  在list[i]这个位置插入参数,一次只能添加一个参数

二、删除

1、list.remove( )  删除列表中的跟括号参数一样的值,(注意:元素必须存在于列表中,否则会报错)

2、list.del(i )  删除列表list[i]位置的元素

3、pop( )  删除列表最后一个元素,如果括号有参数i,同del()用法

 

三、列表分片(slice)

list[a,b]:数学表示为[a,b):a表示从第几位开始(默认0开始),b默认b前一位为最后一个元素

list[1:6]:原列表中索引值1~5的元素组成新的列表
list[1:]:索引值从1开始到最后一个元素
list[:]:原列表所有元素,特别的list2 = list[:]完成列表的拷贝,原列表变了它不会变
list[0:9:2]:索引从0开始到索引8,跨步2取数
list[::-1]:完成原列表的反转
>>> list7 = [4,5,2,8,44,23,12]
>>> list8 = list7[:]    #拷贝不变化
>>> list9 = list7    #跟着变化
>>> list8
[4, 5, 2, 8, 44, 23, 12]
>>> list9
[4, 5, 2, 8, 44, 23, 12]
>>> list7.sort( )
>>> list7
[2, 4, 5, 8, 12, 23, 44]
>>> list8
[4, 5, 2, 8, 44, 23, 12]
>>> list9
[2, 4, 5, 8, 12, 23, 44]
list7 = [999]
#这里如果list7重新赋值,list8和list9都不会变了,列表名相当于一个指针指向列表

 

 
四、排序
list.sort(func,key,reverse)  reverse默认False顺序,reverse=True倒序
 
五、列表推导式或列表解析

列表推导式(List comprehensions)也叫列表解析,灵感取自函数式编程语言 Haskell。可以用来动态的创建列表

语法如:[有关A的表达式 for A in B]

>>> list1 = [x**2 for x in range(10)]
>>> list1
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
>>> 

相当于

list1 = []
for x in range(10):   #[0,10)
    list1.append(x**2)

最后补充:
列表的内置函数:
比较两个列表的元素:operator.eq(list1,list2)(前提需import operator)
计算列表元素个数:len(list1)
返回列表中元素最大值:max(list1)
返回列表中元素最小值:min(list1)
将元组转换为列表:list(tuple1)

>>>dir(list)   #列表的用法

list.count(124)  #124在列表中出现多少次

list.index(124)  #124在列表第一次出现的位置

list.index(124,3,7)   #124list[3]list[7]中间出现的位置