一:数据结构
1.数组:大小固定、内存连续的内存内存结构
2.链表:大小可以随意变化、内存不一定连续
3.栈:先进后出(FILO)、后进先出(LILO)
4.队列:先进先出(FIFO)、后进后出(LILO)
二:列表(list)
1.打印
# list 采用了双向链表的结构
a = [1, 2, 3, 4, 5, 6, 7, 8, 9]
print(a)
2.强制类型转换
b = list("wangxiangxiu")
print(b)
3.获取长度
# 通过下标获取长度,下标从0开始
print(len(a))
4.遍历列表
# 遍历列表
i = 0
while i < len(a):
print(a[i])
i += 1
for j in a:
print(j)
5.同时获取下标和列表
# 获取下标和列表
for m, n in enumerate(b):
print(m, n)
6.通过下标修改列表
# 通过下标修改列表
b[11] = 5
print(b)
7.列表关键字
# 列表关键字的查阅
print(dir(a))
8.列表值的增删
# 于列表末尾加入
a.append("wang")
print(a)
# 末尾插入一个数值
a.insert(len(a), "wang")
print(a)
# 中间
a.insert(5, "xiang")
print(a)
# 默认删除最后一个值
a.pop() # 有返回值
print(a)
print(a.pop()) # 显示列表的最后一个值
# 可以传一个参进行删除
a.pop(5)
print(a)
print(a.pop(5)) # 显示指定参数的值
# remove不用传参,寻找列表索引的第一个值进行删除
a.insert(4, 520)
print(a)
a.remove(520)
print(a)
print(a.remove(520)) # 无返回值,显示None
# 利用while循环进行删除列表中存在的所有的该元素
a.insert(1, 1)
a.insert(1, 1)
a.insert(1, 1)
print(a)
while 1 in a:
a.remove(1)
print(a)
# 清空列表
a.clear()
print(a)
# 索引指定数值的下标,且索引出来的值为第一个数值的下标
a.insert(5, 111)
print(a)
9.列表的复制
# 复制
b = a
print(a)
print(b)
a.append(1314)
print(a) # 若a的值改变,则b的值也会改变,因为列表中实际储存的是一个地址
print(b)
c = b.copy() # 使用copy不会改变原来数组的值
c.append(520)
print(b)
print(c)
10.查阅指定数值个数
# 查阅指定值的个数
print(a.count(8))
11.合并
# 合并列表
a.extend(b)
print(a)
12.反转
# 反转列表的值
a.reverse()
print(a)
reversed(a) # 无返回值
print(a)
13.排序
# 从小到大排序
b = [1, 2, 3, 8, 9, 1, 6, 5]
b.sort()
print(b)
print(sorted(b)) # 有返回值