Python之‘数据结构’
简介
数据结构基本上就是--它们是可以处理一些数据的结构。或者说,它们是用来存储一组相关数据的。在Python里面有三种内建的数据结构--列表、元组和字典。
一、列表
list是处理一组有序项目的数据结构,即你可以在一个列表中存储一个序列的项目。假象你有一个购物列表,上面记载着你想买的东西,就容易理解列表了。只不过在你的购物列表上,可能每样东西都独自占有一行,而在Python中,你在每个项目之间用逗号分隔。
列表中的项目应该包含在方括号中,这样Python就知道你在指明一个列表。一旦你创建一个列表,你可以添加、删除或是搜索列表中的项目。由于你可以添加或删除项目,我们说列表是可变的数据类型,即这种类型是可以被改变的。
- #this is my shoping list
- shoplist = ['apple','mango','carrot','banana']
- print('i have',len(shoplist),'items to purchase')
- print('These items are'),
- for item in shoplist:
- print(item)
- 结果:
- i have 4 items to purchase
- These items are
- apple
- mango
- carrot
- banana
- Process finished with exit code 0
二、元组
元组和列表十分类似,只不过元组和字符串一样是不可变的即你不可以修改元组。元组通过圆括号中用逗号分隔的项目定义。元组通常用在使语句或用户定义的函数能够安全的采用一组值得时候,即被使用的元组的值不会改变。
- zoo = ('wolf','elephant','penguin')
- print('Number of animals in the zoo is',len(zoo))
- new_zoo = ('monkey','dolphin',zoo)
- print('Number of anmials in the new zoo is',len(new_zoo))
- print('All anmials in the new zoo are',new_zoo)
- print('A anmials brought from old zoo are',new_zoo[2])
- print('Last anmial brought form old zoo is',new_zoo[2][2])
- 结果:
- Number of animals in the zoo is 3
- Number of anmials in the new zoo is 3
- All anmials in the new zoo are ('monkey', 'dolphin', ('wolf', 'elephant', 'penguin'))
- A anmials brought from old zoo are ('wolf', 'elephant', 'penguin')
- Last anmial brought form old zoo is penguin
三、字典
字典类似于你通过联系人名字查找地址和联系人详细情况的地址簿,即,我们把键(名字)和值(详细情况)联系在一起。注意,键必须是唯一的,就像是如果有两个人恰巧同名的话,你无法找到正确信息。
注意,你只能使用不可变的对象(比如字符串)来作为字典的键,但是你可以把不可变或可变的对象作为字典的值。基本说来就是,你应该只使用简单的对象作为键。
键值在字典中以这样的方式标记:d = {key1 : value1,key2 : value2}。注意它们的键/值对用冒号分割,而各个对应用逗号分割,所有这些都包括在花括号内。
记住字典的键/值对是没有顺序的。如果你想要一个特定的顺序,那么你应该在使用它们之前对它们排序。
- ab = {
- 'Swaroop' : 'cairui@11.com',
- 'Larry' : 'Larry@wall.com',
- 'Matsumoto' : 'matz@qq.com',
- 'Spamma' : 'spamma@qq.com'
- }
- print('Swaroop address is',ab['Swaroop'])
- print('Larry address is',ab['Larry'])
- 结果:
- Swaroop address is cairui@11.com
- Larry address is Larry@wall.com
四、序列
序列有两个主要特点是索引操作符和切片操作符。索引操作符让我们可以从序列中抓取一个特定项目。切片操作符让我们能够获取序列的一个切片,即一部分序列。
- shoplist = ['apple','mango','carrot','banana']
- print('Item0 is',shoplist[0])
- print('Item1 is',shoplist[1])
- print('Item3 is',shoplist[3])
- print('Item-1 is',shoplist[-1])
- print('Item 1 to 3 is',shoplist[1:3])
- 结果:
- Item0 is apple
- Item1 is mango
- Item3 is banana
- Item-1 is banana
- Item 1 to 3 is ['mango', 'carrot']
五、引用
当你创建一个对象并给它附一个变量的时候,这个变量仅仅引用那个对象,而不是表示这个对象本身!也就是说,变量名指向你计算机中存储那个对象的内存。这被称作名称到对象的绑定。
Python之‘数据结构’的更多相关文章
- python 与数据结构
在上面的文章中,我写了python中的一些特性,主要是简单为主,主要是因为一些其他复杂的东西可以通过简单的知识演变而来,比如装饰器还可以带参数,可以使用装饰类,在类中不同的方法中调用,不想写的太复杂, ...
- [0x00 用Python讲解数据结构与算法] 概览
自从工作后就没什么时间更新博客了,最近抽空学了点Python,觉得Python真的是很强大呀.想来在大学中没有学好数据结构和算法,自己的意志力一直不够坚定,这次想好好看一本书,认真把基本的数据结构和算 ...
- Python -- 堆数据结构 heapq - I love this game! - 博客频道 - CSDN.NET
Python -- 堆数据结构 heapq - I love this game! - 博客频道 - CSDN.NET Python -- 堆数据结构 heapq 分类: Python 2012-09 ...
- python实现数据结构单链表
#python实现数据结构单链表 # -*- coding: utf-8 -*- class Node(object): """节点""" ...
- 《用Python解决数据结构与算法问题》在线阅读
源于经典 数据结构作为计算机从业人员的必备基础,Java, c 之类的语言有很多这方面的书籍,Python 相对较少, 其中比较著名的一本 problem-solving-with-algorithm ...
- 用Python实现数据结构之二叉搜索树
二叉搜索树 二叉搜索树是一种特殊的二叉树,它的特点是: 对于任意一个节点p,存储在p的左子树的中的所有节点中的值都小于p中的值 对于任意一个节点p,存储在p的右子树的中的所有节点中的值都大于p中的值 ...
- (python数据分析)第03章 Python的数据结构、函数和文件
本章讨论Python的内置功能,这些功能本书会用到很多.虽然扩展库,比如pandas和Numpy,使处理大数据集很方便,但它们是和Python的内置数据处理工具一同使用的. 我们会从Python最基础 ...
- python的数据结构分类,以及数字的处理函数,类型判断
python的数据结构分类: 数值型 int:python3中都是长整形,没有大小限制,受限内存区域的大小 float:只有双精度型 complex:实数和虚数部分都是浮点型,1+1.2J bool: ...
- Python 基本数据结构
Python基本数据结构 数据结构:通俗点儿说,就是存储数据的容器.这里主要介绍Python的4种基本数据结构:列表.元组.字典.集合: 格式如下: 列表:list = [val1, val2, va ...
- 转 Python常见数据结构整理
http://www.cnblogs.com/jeffwongishandsome/archive/2012/08/05/2623660.html Python常见数据结构整理 Python中常见的数 ...
随机推荐
- 机器学习:PCA(高维数据映射为低维数据 封装&调用)
一.基础理解 1) PCA 降维的基本原理 寻找另外一个坐标系,新坐标系中的坐标轴以此表示原来样本的重要程度,也就是主成分:取出前 k 个主成分,将数据映射到这 k 个坐标轴上,获得一个低维的数据集. ...
- python startswith与endswith
如果你要用python匹配字符串的开头或末尾是否包含一个字符串,就可以用startswith,和endswith比如:content = 'ilovepython'如果字符串content以ilove ...
- 第四章 Javac编译原理(待续)
Javac是什么 Javac编译器的基本结构 Javac工作原理分析 设计模式解析之访问者模式
- jackson 进行json与java对象转换 之四
jackson简单使用,对象转json,json转对象,json转list POJO序列化为json字符串: 准备一个POJO: @JsonIgnoreProperties(ignoreUnkno ...
- DAY19-Django之form组件补充
问题1:注册页面输入为空,报错:keyError:找不到password def clean(self): print("---" ,self.cleaned_data) # if ...
- 基于Flask框架的Python web程序的开发实战 <一> 环境搭建
最近在看<Flask Web开发基于Python的Web应用开发实战>Miguel Grinberg著.安道译 这本书,一步步跟着学习Flask框架的应用,这里做一下笔记 电脑只安装一个P ...
- SSH简单搭建
本项目使用Struts2+spring3+hibernate3: 第一步:引入jar包,具体需要哪些包根据实际情况加入.注意:把jar包导入后需要对所有包Add to Build Path;然后对工程 ...
- requestLayout, invalidate和postInvalidate的异同
requestLayout 当一个VIEW的布局属性发生了变化的时候,可以调用该方法,让父VIEW调用onmeasure 和onlayout重新定位该view的位置,需要在UI线程调用 invalid ...
- Quartz_1_简单编程式任务调度使用(SimpleTrigger)
最近在工作中,要做定时任务的更能,最开始的时候,想到的是 JavaSE 中,自带 Timer 及 TimerTask 联合使用,完成定时任务.最后发现,随着业务的复杂,JDK 中的 Timer 和 T ...
- nodejs的POST请求
http://blog.csdn.net/puncha/article/details/9015317 Nodejs 发送HTTP POST请求实例 2013-06-03 17:55 71745人阅读 ...