python学习笔记(13)数据结构
文章目录
- 简介
- 将列表当做堆栈使用
- 将列表当作队列使用
- 列表推导式
- 嵌套列表解析
- del 语句
- 遍历技巧
简介
本章节将结合前面介绍的列表、元组等知识来讲解。
将列表当做堆栈使用
列表中有许多有用的方法,这也使得列表能够方便快捷地当做一个堆栈使用。堆栈的特点是先进后出,换句话说就是首先进栈的元素最后一个被释放。使用append方法能够将一个元素添加到栈顶。
具体案例如下所示:
dtcloud = [3, 4, 5]
print(dtcloud)
dtcloud.append(6)
dtcloud.append(7)
print(dtcloud)
print(dtcloud.pop())
print(dtcloud)
print(dtcloud.pop())
print(dtcloud)
print(dtcloud.pop())
print(dtcloud)
print(dtcloud.pop())
print(dtcloud)
print(dtcloud.pop())
print(dtcloud)
将列表当作队列使用
列表也能够当做队列使用,在队列最先加入的元素首先会被取出。但这样的效率不会很高。列表最后添加或者取出的元素速度很快,但是插入或者从头部取出的速度会相对较慢。
下面是代码实例:
from collections import dequequeue = deque(["dtcloud360", "zyf", "dtcloud"])
print(queue)
queue.append("亿智云")
queue.append("智慧企业")
print(queue.popleft())
print(queue.popleft())
print(queue)
列表推导式
创建列表的简单途径由列表推导式提供。一些操作通常由应用程序应用到序列的每个元素。获得的结果将会作为新列表的元素,或者是根据判定条件创建子序列。
每个列表推导式都会在for之后加上表达式,返回根据表达式而生成的一个列表。
如下所示:
dtcloud = [2, 4, 6]
print(dtcloud)
print([3*x for x in dtcloud])
也可以以这样的形式创建:
dtcloud = [2, 4, 6]
print(dtcloud)
print([[x, x**2] for x in dtcloud])
嵌套列表解析
在之前的文章中提到列表可以嵌套,本次实例展现一个34的矩阵列表,然后将之转换成43的格式。
dtcloud = [[1, 2, 3, 4],[5, 6, 7, 8],[9, 10, 11, 12],]
print(dtcloud)print([[row[i] for row in dtcloud] for i in range(4)])
del 语句
使用del 语句能够根据索引值删除列表中的某个元素,与前文介绍过的pop方法不同,可以从del语句删除一个切割或者清空列表。例如:
a = [-1, 1, 66.25, 333, 333, 1234.5]
del a[0]
print(a)
当然也可以用del删除整个列表
del a
遍历技巧
遍历字典的时候,关键字与对应的值可以使用item方法同时读出。
如下所示:
dtcloud = {'zyf': 'the company', 'dtcloud': 'the best'}
for c, p in dtcloud.items():print(c, p)
遍历序列的时候,索引位置和对应值可以使用 enumerate() 函数同时得到:
for i, v in enumerate(['dtcloud', '亿智云', 'zyf']):print(i, v
需要同时遍历多个序列的时候,需要用到zip:
questions = ['name', 'quest', 'favorite color']
answers = ['dtcloud', 'the holy grail', 'blue']
for q, a in zip(questions, answers):print('What is your {0}? It is {1}.'.format(q, a))
python学习笔记(13)数据结构相关推荐
- Python学习笔记(数据结构)
第五章 数据结构 1.列表 1.1 列表的基本用法 在 Python 中使用中括号 " [ ] " 来表示列表,并用逗号(英文输入格式)分隔其中的元素. book =['西游记' ...
- Python 学习笔记13 类 - 继承
我们在编程的过程中,并非都是要重头开始.比如其他人已经有现成的类,我们可以使用其他找人编写的类.术语称之为: 继承. 当一个类继承例外一个类时,它可以获得这个类的所有属性和方法:原有的类称之为 父类, ...
- Python学习笔记(13)-Python类与对象示例
点此查看 零基础Python全栈文章目录及源码下载 本文目录 1. 简介 2. Python类的定义 3. Python类的动态语言特性 4. Python类中属性的访问控制 1. 简介 Python ...
- python的基本数据结构_Python学习笔记——基本数据结构
列表list List是python的一个内置动态数组对象,它的基本使用方式如下: shoplist = ['apple', 'mango', 'carrot', 'banana'] print 'I ...
- opencv进阶学习笔记13:图像形态学操作大全(膨胀,腐蚀,开闭,黑帽,顶帽,梯度)python版
基础版学习笔记: python3+opencv学习笔记汇总目录(适合基础入门学习) 进阶版笔记目录链接: python+opencv进阶版学习笔记目录(适合有一定基础) 基础版形态学: opencv学 ...
- python的基本数据结构_python学习笔记-基本数据结构
Python 学习笔记-1 写在最前面,因为组内小伙伴要走,生信团队由原来的7个人,慢慢的变的只有我一个人了,需要紧急突击下python,因为有python的流程要交接维护 python 基本情况 代 ...
- Python学习笔记:访问数据库
前言 最近在学习深度学习,已经跑出了几个模型,但Pyhton的基础不够扎实,因此,开始补习Python了,大家都推荐廖雪峰的课程,因此,开始了学习,但光学有没有用,还要和大家讨论一下,因此,写下这些帖 ...
- Python学习笔记:常用内建模块6 (urllib)
前言 最近在学习深度学习,已经跑出了几个模型,但Pyhton的基础不够扎实,因此,开始补习Python了,大家都推荐廖雪峰的课程,因此,开始了学习,但光学有没有用,还要和大家讨论一下,因此,写下这些帖 ...
- Python学习笔记19:列表 III
Python学习笔记19:列表 III 其实这篇笔记标题应该是列表扩展,从列表开始,将涵盖Python中的序列容器. 关于列表的基础知识,可以看我的前两篇文章: Python学习笔记1:列表. Pyt ...
- Python学习笔记 day5
Python学习笔记 day5 参考/引用资料: 1.file a.打开文件方式(读写两种方式) 缓冲 with语句 b.文件对象的操作方法 c.学习对excel及csv文件进行操作 读写excel ...
最新文章
- php laravel 环境搭建
- 运维基础--Linux用户和组的管理
- 操作系统安装必备基础知识----浅谈电脑系统里的那些UEFI, BIOS, MBR, GPT。
- vc++获取网页源码之使用import+接口方式
- [Leedcode][JAVA][第355题][设计推特][面向对象][哈希表][链表][优先队列]
- Python编程常见出错信息及原因分析(5):安装扩展库
- html中的声明的作用域,Html/CSS 作用域
- c++ windows下declspec
- 博弈论重要算法:Sprague-Grundy 定理 (SRM 561 Div1 550)
- echarts引入china报错(The GeoJSON of the map must be provided)
- 简述RAID 0,1,5,10区别
- 计算机网络第七版课后习题答案(第一章)(20210321)
- PDF转ONENOTE的方法
- 【跨境电商】WhatsApp营销保姆级教程!
- python职场应用英语作文_春考关于职场应用的英语作文
- java word转换pdf(先自定义添加水印 后转换pdf)通过 aspose-words
- 飞腾桌面腾锐D2000 核心板
- 解压rar/zip工具类
- 重要!我的公众号要改名了(一些感想...)
- Wireshark的作用
热门文章
- Python3 print pprint
- 神经网络入门(个人理解)
- 《人工智能本科专业知识体系与课程设置》笔记
- 数据、数据元素、数据项和数据对象
- linux 配置 ftp 服务器以及 ftp 客户端登录
- ASCII转十六进制小工具
- []==[]和[]==![]
- CLion: rsync is not installed or not avaiable in PATH on remote host
- 【hdu 1533】Going Home
- 关于一个学习计算机专业,迷茫的大一新生的看法和理解