八、列表
2017-08-13 本文已影响19人
焰火青春
1、列表
数组:元素数据类型必须一致
列表:不要求数据类型一致,可以是整型、浮点型,也可以是字符串等
1.1、创建列表
(1)、普通列表
>>>number = [1,2,3,4,5]
(2)、混合列表
>>> mix = [1,'python',[1,2,3]]
(3)、空列表
>>> empty = []
1.2、向列表添加元素
(1)、向末尾添加元素
单个元素 | list.append() |
---|---|
多个元素 | list.extend([]) |
>>> list = [1,2,3]
>>> list.append(4)
>>> list
[1, 2, 3, 4]
>>> list.extend([5,6]) #extend()方法是使用一个列表拓展另一个列表,所以其参数是列表
>>> list
[1, 2, 3, 4, 5, 6]
(2)、任意位置添加元素
list.insert(a, b) #参数a:要插入的列表的位置,参数b:要插入的元素
>>> list = [1,2,3,4]
>>> list.insert(1, 'python') #1为索引号
>>> list
[1, 'python', 2, 3, 4]
1.3、从列表中获取元素
(1)、获取单个元素
通过索引值获取单个元素,索引号从0开始
>>> color = ['blue', 'white', 'red']
>>> color[1]
'white'
>>> color[0], color[2] = color[2], color[0]
>>> color
['red', 'white', 'blue'] #元素对换位置
(2)、列表分片(获取多个元素)
list[a:b] #参数a、b为索引值,a为开始位置,b是结束位置,不包括结束位置
>>> color = ['blue', 'white', 'red']
>>> color[0:2]
['blue', 'white']
>>> color[:2] #获取索引值2以前的元素,不包括2的元素
['blue', 'white']
>>> color[1:] #获取索引值为1以后的元素,包括1的元素
['white', 'red']
>>> color[:] #对原列表进行拷贝
['blue', 'white', 'red']
>>> list = [1,2,3,4,5,6,7,8,9]
>>> list[0:9:2] # 列表分片第三个参数表示步进,默认为1
[1, 3, 5, 7, 9]
>>> list[::2]
[1, 3, 5, 7, 9]
>>> list[::-1] # 第三个参数为复数则表示原列表原地翻转
[9, 8, 7, 6, 5, 4, 3, 2, 1]
>>> list[::-2]
[9, 7, 5, 3, 1]
1.4、从列表删除元素
(1)、remove()方法
不需要知道元素所在列表的位置,参数为将要删除的元素
>>> num = [1,2,3]
>>> num.remove(2)
>>> num
[1, 3]
(2)、del[]语句
参数:所删除元素的索引值
>>> num1 = [1,2,3]
>>> del num1[1]
>>> num1
[1, 3]
>>> del num1 #删除整个列表
(3)pop()方法
默认弹出列表最后一个元素,其参数也可以接收索引值,进行弹出对应元素
>>> list = [1,2,3,4,5,6]
>>> list.pop() # 默认弹出最后一个,并返回
6
>>> list
[1, 2, 3, 4, 5]
>>> list.pop(3) # 指定索引值
4
1.5、列表的常用操作符
>>> list1 = [123]
>>> list2 = [456]
>>> list3 = ['abc']
>>> list4 = ['bcd']
>>> list5 = [123,456]
>>> list6 = [234,123]
>>> list7 = list1 + list2 #连接操作符
>>> list7
[123, 456]
>>> list8 = list3 + list4
>>> list8
['abc', 'bcd']
>>> list1 < list2 #比较操作符
True
>>> list3 > list4
False
>>> list5 > list6 #包含多个元素的列表比较时,默认从第一个元素开始比较,若真则整个列表赢了,字符串比较是第一个字符的ASCII码值对比
False
>>> (list1 < list2) and (list1 == list3) #逻辑操作符
False
>>> list1 = [123]
>>> list1*2 #重复操作符
[123, 123]
>>> list = [1,2,3,[4,5]]
>>> 1 in list #成员操作符in、not in
True
>>> 6 not in list
True
>>> 4 in list #列表中的列表元素不能直接访问
False
>>> 4 in list[3] #列表中的列表元素访问可以添加索引号
True
>>> list = [1,2,3,[4,5]]
>>> list[3][0] #获取列表的列表元素,第一个参数为第一个列表索引值,第二个参数为第二个列表索引值
4
1.6、列表的其他方法
查看所有列表:dir(list)
(1)、count()方法
计算其参数在列表中出现的次数
>>> list1 = [1,1,2,3,4,5,8]
>>> list1.count(1)
2
(2)、index()方法
返回其参数在列表中的位置
>>> list1.index(1) #列表中两个相同元素,返回的为第一个的位置
0
>>> list1.index(3)
3
>>> list1.index(1, start,stop) #设定索引范围,可以查找第二个目标位置
1
(3)、reverse()方法
将整个列表原地翻转
>>> list1.reverse()
>>> list1
[8, 5, 4, 3, 2, 1, 1]
(4)、sort()方法
用指定的方式对列表元素排序,默认为从小到大排序
从大到小排序时,可以使用sort排序后再使用reverse()方法翻转
另外可以使用sort()方法的第三个参数sort(func, key, reverse)
默认sort(reverse = False),表示不颠倒顺序。
>>> list2 = [2,1,4,6,3,9,8]
>>> list2.sort()
>>> list2
[1, 2, 3, 4, 6, 8, 9]
>>> list2.sort(reverse = True) #True时表示颠倒顺序
>>> list2
[9, 8, 6, 4, 3, 2, 1]
(5)、copy()方法
与切片一样,不与原列表变化
(6)、clear()方法
清空整个列表,变成空列表
1.7、关于列表分片的补充
列表分片与拷贝不与原列表变化而变化,新赋值的列表相反
>>> list1 = [1,3,4,2,7,9]
>>> list2 = list1[:]
>>> list2
[1, 3, 4, 2, 7, 9]
>>> list3 = list1
>>> list3
[1, 3, 4, 2, 7, 9]
>>> list1.sort() # 对原列表从小到大排序
>>> list1
[1, 2, 3, 4, 7, 9]
>>> list2
[1, 3, 4, 2, 7, 9] #切片的列表不变化
>>> list3 #赋值的列表变化
[1, 2, 3, 4, 7, 9]