列表可以存放任何数据类型,特别优秀。
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)
比较两个列表的元素: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) #124从list[3]到list[7]中间出现的位置