加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 建站 > 正文

Python编程中3个常用的数据结构和算法

发布时间:2019-04-17 07:10:41 所属栏目:建站 来源:程序员爱学习
导读:Python内置了很多很是有效的数据布局,好比列表(list)、荟萃(set)以及字典(dictionary)。就绝大部门环境而言,我们可以直接行使这些数据布局。可是,凡是我们还必要思量好比搜刮、排序、分列以及筛选等这一类常见的题目。 本篇文章将先容3种常见的数据布局

deque(maxlen=N)建设了一个牢靠长度的行列。当有新记录插手而行列已满时会自动移除最老的那笔记录。譬喻:

  1. >>> q = deque(maxlen=3) 
  2. >>> q.append(1) 
  3. >>> q.append(2) 
  4. >>> q.append(3) 
  5. >>> q 
  6. deque([1, 2, 3], maxlen=3) 
  7. >>> q.append(4) 
  8. >>> q 
  9. deque([2, 3, 4], maxlen=3) 
  10. >>> q.append(5) 
  11. >>> q 
  12. deque([3, 4, 5], maxlen=3) 

尽量可以在列表上手动完成这样的操纵(append、del),但行列这种办理方案要优雅得多,运行速率也快得多。

更广泛的是,当必要一个简朴的行列布局时,deque可祝你一臂之力。假如不指定行列的巨细,也就获得了一个无边界的行列,可以在两头执行添加和弹出操纵,譬喻:

  1. >>> q = deque() 
  2. >>> q.append(1) 
  3. >>> q.append(2) 
  4. >>> q.append(3) 
  5. >>> q 
  6. deque([1, 2, 3]) 
  7. >>> q.appendleft(4) 
  8. >>> q 
  9. deque([4, 1, 2, 3]) 
  10. >>> q.pop() 
  11. >>> q 
  12. deque([4, 1, 2]) 
  13. >>> q.popleft() 

从行列两头添加或弹出元素的伟大度都是O(1)。这和列表差异,当从列表的头部插入或移除元素时,列表的伟大度为O(N)。

【编辑保举】

  1. Stack Overflow 2019开拓者观测陈诉宣布,Python或成赢?
  2. Fedora 提出同一流程,弃用上千 Python 2 软件包更可控
  3. Python并发:线程和锁
  4. 百道Python口试题实现,搞定Python编程就靠它
  5. 你爱 “Python”的身材,照旧“R”的魂灵?
【责任编辑:赵宁宁 TEL:(010)68476606】
点赞 0

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读