Python数据结构

1.Lists

列表(Lists)是一种十分有用的数据结构,介绍一下Lists的常用方法。

lst = [1,2,3,4,5]   # 列表使用[]声明,元素之间使用逗号分割
# list.append(x) 向列表尾部添加一个元素,等价于a[len(a):] = x
lst.append(6)   # lst:[1, 2, 3, 4, 5, 6]
# list.extend(iterable) 将可迭代元素的每个元素依次添加到列表尾部
lst.extend([7,8])   # lst:[1, 2, 3, 4, 5, 6, 7, 8]
# list.insert(i,x) 向列表的第i个位置上插入元素x
lst.insert(0,0)   # lst:[0, 1, 2, 3, 4, 5, 6, 7, 8]
# list.remove(x) 删除列表中第一个等于x的元素,如果没有这种元素会引发ValueError
lst.remove(0)  # lst:[1, 2, 3, 4, 5, 6, 7, 8]
# list.pop([i]) 移除列表中第i个元素并返回这个元素,[]表示可选参数,若没有给出i,则删除并返回列表中最后一个元素
lst.pop(6)  # 返回7,lst:[1, 2, 3, 4, 5, 6, 8]
lst.pop()   # 返回8,lst:[1, 2, 3, 4, 5, 6]
# list.reverse()  将列表的元素反转
lst.reverse()   # lst:[6, 5, 4, 3, 2, 1]
# list.index(x[,start[,end]]) 返回下标从0开始的第一个值等于x元素的下标,如果没有这个元素,则引发ValueError
# start,end可选参数使用了切片的语法,用来限制索引范围
lst.index(5)   # 返回1
# list.count(x) 返回列表中x出现的次数
lst.count(2)  # 返回1
# list.sort(key=None,reverse=False) 将列表元素从小到大排序,排序的自定义参数可以参考sorted()的参数
lst.sort()  #lst:[1, 2, 3, 4, 5, 6]
# list.copy()  返回列表的一个浅复制,等价于a[:]
# 浅复制不会复制子对象,所以,复制出来的对象和原对象并非完全不想关。
# 深复制会递归的克隆子对象,所以,复制出来的对象和原对象完全不相关,但是深复制比浅复制会慢一些。
lst.copy()   # 返回[1, 2, 3, 4, 5, 6]
# list.clear() 清空列表,等价于del a[:]
lst.clear()  # lst:[]

像insert,remove,sort这些只修改列表的方法没有返回值,它们默认返回None,这是Python中可变数据结构的设计原则。

1.1 使用列表实现栈

列表提供的方法使得很适合用来实现栈,栈是一种后进先出的数据结构。可以使用list.append()方法模拟入栈操作,使用list.pop()模拟出栈操作。

stack = [1,2,3]   # 声明栈
stack.append(4)   # 入栈 stack:[1, 2, 3, 4]
stack.pop()  # 出栈,返回4  stack:[1, 2, 3]
len(stack)   # 返回3 获取栈中数据元素的个数

1.2 使用列表实现队列

使用列表也可以实现队列操作,队列是一种先进先出的数据结构。可以使用list.append()模拟入队列操作,使用list.pop(0)模拟出队列操作。


                
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值