常见的线性表 ------ 数组、链表,队列、栈 -------- 基于链表实现
注意:python没有数组的
特点:连续的 查询快 删除比较麻烦
链表:单向链表和双向链表
栈:先进后出
队列:先进先出
列表----- 基于双向链表实现的
定义方式:
第一种:根据弱数据类型语言的特点进行定义
例如: ls = [1,2,3,4]
第二种:使用全局函数 list()
例如: ls1 = list()
ls2 = list([1,2,3,4,5])
访问列表中的元素:
通过下标访问,下标从0开始,超过则会报错,而且下标可以为负数
求列表的长度:
len() ------ 返回容器的长度
遍历列表:
概念:遍历列表,就是将列表中所有的元素都提取出来
方法如下:
1、使用 for 循环
for i in ls:
print(i)
2、使用 while 循环
index = 0
while index < len(ls):
print(ls[index])
index += 1
列表中常用的方法:
append() ------- 在列表的尾部添加元素
使用方法:
>>> ls = [1,2,3,5]
>>> print(ls)
[1, 2, 3, 5]
>>> ls.append(6)
>>> print(ls)
[1, 2, 3, 5, 6]
insert(index,object) ------- 向指定的位置添加元素
使用方法:
>>> print(ls)
[1, 2, 3, 5, 6]
>>> ls.insert(3,8)
>>> print(ls)
[1, 2, 3, 8, 5, 6]
sort() ------- 列表排序(默认从小到大排序,且默认为 int 类型) 如果是字母 则按照ASCLL的值进行排序,元素必须一致,否则就会报错
使用方法:
>>> print(ls)
[1, 2, 3, 8, 5, 6]
>>> ls.sort()
>>> print(ls)
[1, 2, 3, 5, 6, 8]
>>> ls1 = ['a','A','B','e']
>>> print(ls1)
['a', 'A', 'B', 'e']
>>> ls1.append(4)
>>> ls1.append(6)
>>> ls1.append(1)
>>> print(ls1)
['a', 'A', 'B', 'e', 4, 6, 1]
>>> ls1.sort()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: '<' not supported between instances of 'int' and 'str'
index() -------- 查找某一个元素在列表中的位置(第一次出现的位置),返回的结果是所查找元素的下标
使用方法:
>>> print(ls)
[1, 2, 3, 5, 6, 8]
>>> ls.index(5)
3
>>> ls.index(1)
0
reverse() ------- 将列表进行翻转
使用方法:
>>> ls.reverse()
>>> print(ls)
[8, 6, 5, 3, 2, 1]
>>> print(ls)
[8, 6, 5, 3, 2, 1]
>>> ls.reverse()
>>> print(ls)
[1, 2, 3, 5, 6, 8]
count() ------- 统计列表中某一个元素出现的次数
使用方法:
>>> print(ls)
[1, 2, 3, 5, 6, 8, 5]
>>> ls.count(5)
2
>>> ls.count(2)
1
remove() ------- 删除元素(移除),通过元素删除,如果所删除的元素多次出现,则删除处于第一位置的元素,元素不存在则会报错
使用方法:
>>> print(ls)
[1, 2, 3, 5, 6, 8, 5]
>>> ls.remove(1)
>>> print(ls)
[2, 3, 5, 6, 8, 5]
>>> ls.remove(5)
>>> print(ls)
[2, 3, 6, 8, 5]
>>> ls.remove(9)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: list.remove(x): x not in list
clear() ------- 清除列表
使用方法:
>>> ls.clear()
>>> print(ls)
[]
copy() ------ 拷贝 浅拷贝对象 不等价于 = 在堆内存进行的拷贝
使用方法:
>>> ls = [1,2,3,6,4]
>>> print(ls)
[1, 2, 3, 6, 4]
>>> ls1 = ls.copy()
>>> print(ls1)
[1, 2, 3, 6, 4]
extend() ------ 合并列表
使用方法:
>>> print(ls1)
[1, 2, 3, 6, 4]
>>> ls.extend(ls1)
>>> print(ls)
[1, 2, 3, 6, 4, 1, 2, 3, 6, 4]
>>>
pop() ------- 与 append() 相反,删除列表最后一个元素,返回的是删除掉的元素(有返回值的),如果要删除指定位置的元素, 用 pop(i) ,i指的是下标
使用方法:
>>> print(ls)
[1, 2, 3, 6, 4, 1, 2, 3, 6, 4]
>>> ls.pop()
4
>>> ls.pop(2)
3
>>> print(ls)
[1, 2, 6, 4, 1, 2, 3, 6]