我的编程空间,编程开发者的网络收藏夹
学习永远不晚

python数据结构

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

python数据结构

一:数据结构

  数据结构可以认为他们是用来处理一些数据的或者说是存储数据。

  对于数据结构的介绍会关系到类和对象的定义,此处对这两个定义加以描述。

  何为类:说道类首先我们能够想到类型,在数据结构中类型有哪些常用的类型有int整型,float浮点型,等。在Python中类是有方法的,我们可以简单理解为对这一类可以执行哪些操作。

  何为对象:对象就是实际定义的一个变量, i = 5 i的类型是int整型,对象就是i.


二:python数据结构的分类

  列表,元组,字典,序列。下面将分类介绍下各自的数据结构。


三:列表

  list是处理一组有序项目的数据结构,即你可以在一个列表中存储一个 序列 的项目。假想你有一个购物列表,上面记载着你要买的东西,你就容易理解列表了。只不过在你的购物表上,可能每样东西都独自占有一行,而在Python中,你在每个项目之间用逗号分割。

#!/usr/bin/python
# Filename: using_list.py
# This is my shopping list
shoplist = ['apple', 'mango', 'carrot', 'banana']
print 'I have', len(shoplist),'items to purchase.'
print 'These items are:', # Notice the comma at end of the line
for item in shoplist:
    print item,
print '\nI also have to buy rice.'
shoplist.append('rice')
print 'My shopping list is now', shoplist
print 'I will sort my list now'
shoplist.sort()
print 'Sorted shopping list is', shoplist
print 'The first item I will buy is', shoplist[0]
olditem = shoplist[0]
del shoplist[0]
print 'I bought the', olditem
print 'My shopping list is now', shoplist


变量shoplist是某人的购物列表。在shoplist中,我们只存储购买的东西的名字字符串,但是记住,你可以在列表中添加 任何种类的对象 包括数甚至其他列表。


我们也使用了for..in循环在列表中各项目间递归。从现在开始,你一定已经意识到列表也是一个序列。


注意,我们在print语句的结尾使用了一个 逗号 来消除每个print语句自动打印的换行符。这样做有点难看,不过确实简单有效。


接下来,我们使用append方法在列表中添加了一个项目,就如前面已经讨论过的一样。然后我们通过打印列表的内容来检验这个项目是否确实被添加进列表了。打印列表只需简单地把列表传递给print语句,我们可以得到一个整洁的输出。


再接下来,我们使用列表的sort方法来对列表排序。需要理解的是,这个方法影响列表本身,而不是返回一个修改后的列表——这与字符串工作的方法不同。这就是我们所说的列表是 可变的 而字符串是 不可变的 。


最后,但我们完成了在市场购买一样东西的时候,我们想要把它从列表中删除。我们使用del语句来完成这个工作。这里,我们指出我们想要删除列表中的哪个项目,而del语句为我们从列表中删除它。我们指明我们想要删除列表中的第一个元素,因此我们使用del shoplist[0](记住,Python从0开始计数)


输出结果为

$ python using_list.py
I have 4 items to purchase.
These items are: apple mango carrot banana
I also have to buy rice.
My shopping list is now ['apple', 'mango', 'carrot', 'banana', 'rice']
I will sort my list now
Sorted shopping list is ['apple', 'banana', 'carrot', 'mango', 'rice']
The first item I will buy is apple
I bought the apple
My shopping list is now ['banana', 'carrot', 'mango', 'rice']


四:元组

 元组和列表十分类似,只不过元组和字符串一样是 不可变的 即你不能修改元组。元组通过圆括号中用逗号分割的项目定义。元组通常用在使语句或用户定义的函数能够安全地采用一组值的时候,即被使用的元组的值不会改变。

#!/usr/bin/python
# Filename: using_tuple.py
zoo = ('wolf', 'elephant', 'penguin')
print 'Number of animals in the zoo is', len(zoo)
new_zoo = ('monkey', 'dolphin', zoo)
print 'Number of animals in the new zoo is', len(new_zoo)
print 'All animals in new zoo are', new_zoo
print 'Animals brought from old zoo are', new_zoo[2]
print 'Last animal brought from old zoo is', new_zoo[2][2]


len(zoo)是获取元组的长度,说明元组是一个序列。


定义的new_zoo 是新创建一个元组,应为元组是一个不可变得,不能再原处直接改变,需要另定义一个新的元组,新的元组内有叠加了一个zoon的元组。


获取新的元组序列。


输出新的元组序列


获取新元组序列内的第3个序列,应为是从0开始计数的。


获取第三个元组内的第三个元素。


输出结果

$ python using_tuple.py
Number of animals in the zoo is 3
Number of animals in the new zoo is 3
All animals in new zoo are ('monkey', 'dolphin', ('wolf', 'elephant', 'penguin'))
Animals brought from old zoo are ('wolf', 'elephant', 'penguin')
Last animal brought from old zoo is penguin


五:字典

  字典类似于有一个键值通过这个键值查找对应的信息。注意,键必须是唯一的

 注意,你只能使用不可变的对象(比如字符串)来作为字典的键,但是你可以使用可变或不可变的对象作为字典的值。基本说来就是,你应该只使用简单的对象作为键。键值对在字典中以这样的方式标记:d = {key1 : value1, key2 : value2 }。注意它们的键/值对用冒号分割,而各个对用逗号分割,所有这些都包括在花括号中。

记住字典中的键/值对是没有顺序的。如果你想要一个特定的顺序,那么你应该在使用前自己对它们排序。字典是dict类的实例/对象。


#!/usr/bin/python
# Filename: using_dict.py
# 'ab' is short for 'a'ddress'b'ook
ab = {       'Swaroop'   : 'swaroopch@byteofpython.info',
             'Larry'     : 'larry@wall.org',
             'Matsumoto' : 'matz@ruby-lang.org',
             'Spammer'   : 'spammer@hotmail.com'
     }
print "Swaroop's address is %s" % ab['Swaroop']
# Adding a key/value pair
ab['Guido'] = 'guido@python.org'
# Deleting a key/value pair
del ab['Spammer']
print '\nThere are %d contacts in the address-book\n' % len(ab)
for name, address in ab.items():
    print 'Contact %s at %s' % (name, address)
if 'Guido' in ab: # OR ab.has_key('Guido')
    print "\nGuido's address is %s" % ab['Guido']


字典为ab 输出字典ab内键值是Swaroop


添加一个键值是 Guido:guido@python.org


删除一个键值是 Sapmmer


输出字典ab的序列个数


把字典对应的改变成数组。


如果字典ab有Guido 那么输出该字典


输出结果

$ python using_dict.py
Swaroop's address is swaroopch@byteofpython.info
There are 4 contacts in the address-book
Contact Swaroop at swaroopch@byteofpython.info
Contact Matsumoto at matz@ruby-lang.org
Contact Larry at larry@wall.org
Contact Guido at guido@python.org
Guido's address is guido@python.org

六:序列

列表、元组和字符串都是序列,但是序列是什么,它们为什么如此特别呢?序列的两个主要特点是索引操作符和切片操作符。索引操作符让我们可以从序列中抓取一个特定项目。切片操作符让我们能够获取序列的一个切片,即一部分序列。 字典不是序列。


#!/usr/bin/python
# Filename: seq.py
shoplist = ['apple', 'mango', 'carrot', 'banana']
# Indexing or 'Subscription' operation
print 'Item 0 is', shoplist[0]
print 'Item 1 is', shoplist[1]
print 'Item 2 is', shoplist[2]
print 'Item 3 is', shoplist[3]
print 'Item -1 is', shoplist[-1]
print 'Item -2 is', shoplist[-2]
# Slicing on a list
print 'Item 1 to 3 is', shoplist[1:3]
print 'Item 2 to end is', shoplist[2:]
print 'Item 1 to -1 is', shoplist[1:-1]
print 'Item start to end is', shoplist[:]
# Slicing on a string
name = 'swaroop'
print 'characters 1 to 3 is', name[1:3]
print 'characters 2 to end is', name[2:]
print 'characters 1 to -1 is', name[1:-1]
print 'characters start to end is', name[:]


序列切片从0 开始,-1代表着倒数 也是最后一个。

shoplist[1:3] 代表从1序列开始到3序列

shoplist[:] 代表所有序列

shoplist[:-1] 代表除了最后一个所有的序列。


六:参考


当你创建一个对象并给它赋一个变量的时候,这个变量仅仅 参考 那个对象,而不是表示这个对象本身!也就是说,变量名指向你计算机中存储那个对象的内存。这被称作名称到对象的绑定


wKioL1Tu_JLDdFEqAABORQIZLi4743.jpg

变量一等于变量二。其实就是改下变量二的指针指向变量一的对象,如果变量一发生改变那么变量二也会跟着改变。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

python数据结构

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

python数据结构

一:数据结构  数据结构可以认为他们是用来处理一些数据的或者说是存储数据。  对于数据结构的介绍会关系到类和对象的定义,此处对这两个定义加以描述。  何为类:说道类首先我们能够想到类型,在数据结构中类型有哪些常用的类型有int整型,floa
2023-01-31

python 数据结构

list(列表)创建list方式1  : 直接创建  theList = [1,2,3,4,5,6,7,8,9]                    ==> [1,2,3,4,5,6,7,8,9]方式2 : 使用内建方法list(), 
2023-01-31

Python数据结构__树

树是一种非常重要的数据结构,它是非线性结构,它不是Python内置的数据结构;树:  1.非线性结构,每个元素可以有多个前驱和后继;  2.树是n(n>=0)个元素的集合    n=0时,称为空树;    树只有一个特殊的没有前驱的元素,称
2023-01-31

[Python]数据结构--Bitmap

‘Festinatione facit vastum’Bitmap简介Bitmap的实现和使用Bitmap简介bitmap是很常用的数据结构,比如用于Bloom Filter中、用于无重复整数的排序等等。bitmap通常基于数组来实现,数组
2023-01-31

数据结构[Python--Stack]

难得有些许空闲,看一下Python的数据结构--Stack,现将几个典型示例进行总结!一、什么是栈     栈是一个有序集合,根据其特性可以称为"先进后出"或"后进先出", 其中添加或删除都发生在同一端,这一端被称为"栈顶",与其对应的叫"
2023-01-31

(python)数据结构---集合

一、描述set翻译为集合set是可变的、无序的、不可重复的set的元素要求可哈西(不可变的数据类型可哈西,可变的数据类型不可哈希)set是无序的,因此不可以索引,也不可以修改线型结构的查询时间复杂度是O(n),随着数据的增大而效率下降;se
2023-01-30

python数据结构之 set

在数学概念中,被意为整合元素的定义区域在python中,set最大的作用是用来去重 set常见操作:In [158]: s ={1,1,1,1,2,22,33,3,3,3} In [159]: sOut[159]: {1,2, 3, 22,
2023-01-31

Python数据结构:集合

集合的定义 使用大括号,并且里面必须有初始值,否则是dict字典类型集合的特征集合内部的元素无序,所以不能使用索引、切片等操作集合内部的元素具有唯一性,不允许元素重复出现集合内部的元素,只能存放int, float, str, tuple等
2023-01-30

python数据结构之quick_sor

Quick sort , also known as partition-exchange sort, divides the data to be sorted into two separate parts by a single so
2023-01-30

python内置数据结构

1、列表--是一个序列,用于顺序的存储数据列表的定义与初始化In [374]: lst = list()In [375]: lstOut[375]: []In [376]: lst = []In [377]: lst = [1,2,3]In
2023-01-31

Python 数据结构 tree 树

树节点类 TreeNode作为最简单的树节点,我们只需要3个基本属性name: 当前节点的名字(使用str来保存)parent: 父节点对象(对根节点来说,该值为Null)child: 字节点对象们(使用dict来保存)代码如下:class
2023-01-31

Python内置数据结构——bytes,

bytes,bytearray字符串与bytes字符串是字符组成的有序序列,字符可以使用编码来理解bytes是字节组成的有序的不可变序列bytesarray是字节组成的有序的可变序列编码与解码字符串按照不同的字符集编码encode返回字序列
2023-01-31

python数据结构之链表

''''链表的实现,单向链表''''''建立节点'''class jd:    def __init__(self,data):        self.data = data        self.next = None'''实现链表的
2023-01-31

Python数据结构之队列

python内置的queue模块实现了三种类型的队列,因此没有必要重复造轮子,它们的区别仅仅是条目取回的顺序。

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录