Python入门(4)——数据结构

Python入门(4)——基础数据结构


码文不易,如果帮助到您,希望您可以下载一个压缩包,与您无害,与我有益谢谢支持原创

  在博客上记录学习python的过程,如果有错误,请大家积极指正。

 目录

码文不易,如果帮助到您,希望您可以下载一个压缩包,与您无害,与我有益谢谢支持原创

 学习环境

  • win7
  • Python 3.6.3

 列表

Python内置的一种数据类型是列表:list。list是一种有序的集合,可以随时添加和删除其中的元素。

  如下,便是一个list,描述了我的铅笔盒。

>>> mybox = ["pen","rubber","ruler"] #list
>>> mybox #输出

list-1结果

 长度

  变量mybox就是一个list。用 ==len()== 函数可以获得list元素的个数;

>>>len(mybox)

list-len()结果

 获取

  list除了可以获得全部数据,当然也可以获取其中一个;

>>>mybox[1]

>>>mybox[-1]

>>> mybox[-3]

>>> mybox[-4]

list-[]结果
  没错变量后的 ==[ ]== 就可以指定数据,通过脚标来确定数据位置。
  要注意的是,角标从 0 开始,初学者要摆脱从1开始的思维定式
  除了正向,还可以反向查询。-1 表示最后一个数据。
  当角标超出范围时就会报错,如图中最后 ==list index out of range==

 修改

  list不光可以获取单个信息,也可以修改。

>>> mybox.insert(1,"pencil") #在第一个元素后插入"pencil"

>>> mybox.pop(3)#删除第三个元素

>>> mybox[1] = "ruler" #修改list中第二个数据为"ruler"

list-修改结果

.insert()
  在指定位置插入,参数信息 (整数(代表位置) ,任意数据类型(要存入的数据))

.pop()
  删除指定位置数据,参数信息 (整数(代表位置))

还有就是直接赋值,很简单就不赘述了

 更多

  有人可能注意到了,之前的示例list中数据都是字符串,其实并不是只能用一种数据类型,一个list中可以有不同数据类型。

>>> box = [123,"hello",False,1.1] #整数 字符串 布尔值 浮点数

>>> list = [123 , ["haha",1],923] # list嵌套

>>> list[1]

>>> list[1][1]

list-更多结果

  list中不光可以有不同的数据类型,包括 ==list本身==

 元组

元组(tuple)是关系数据库中的基本概念,关系是一张表,表中的每行(即数据库中的每条记录)就是一个元组,每列就是一个属性。 在二维表里,元组也称为行。—— [百度百科](https://baike.baidu.com/item/%E5%85%83%E7%BB%84 "元组")

  在python中tuple是一旦初始化就不能修改的有序列表

>>> math = ('one', 'two', 'three')

tuple-结果
  注意他与list的区别就是初始化时括号不一样,获取数据方法相同 math[1]就是获取”two”。
  需要注意的是,当只有一项时

>>> a = (1,)

tuple-一项结果
  需要加逗号来避免歧义

tuple-一项不加逗号

  tuple中同样可以存放任何类型,值得一提的是,tuple中可以存list,对于tuple来说是不变的,因为它只存了指向list的指针,而整体来看,它又是可变的,十分奇妙.

 字典

  字典dict,是python中的一种无序可变存储模型,采用键值存储,查找速度快,但是占用内存较大,在其他语言中也有叫map的。

>>> dict = {"a":1,"b":True,"c":"hahah"}

>>> dict

>>> dict["a"]

>>> dict["c"]

dict-展示

  首先从表面看,dict与list和tuple都不同。dict要设定键(类似于角标),键必须是唯一的,而寻值是通过键来寻找,仅此一点他就有很大的价值;例如,班级中按照名字查成绩,全国按地区查看天气等。不仅如此,dict的查询速度极快,特别是数据量极大时,它的优势现实的淋漓尽致。dict内核采用
哈希算法 ,也就是直接通过键值运算求出值所在位置,因此键一定是不可变的,如字符串,整数浮点数。

dict-key
  如图所示,tuple是不可变的可以当作键来使用,而list是可变的所以不能当作键。

 赋值

>>> dict["a"] = 99

>>> dict['wa'] = 1

dict-复制

  dict可以通过键修改值,也可以添加键值对。

 查找

>>> dict['wa']

>>> dict["hehe"]

dict-查找

  但是若查找不存在的键,就会报错。python提供了in和get来避免报错。

  in

>>> "hehe" in dict

>>> if "hehe" in dict:
...     dict["hehe"]
...else:
...     0
...

dict-in

键值 in dict
  返回存在或不存在,适用于条件语句,帮助我们避免报错。

  get
>>> dict.get("hehe")

>>> dict.get("hehe",987)

dict-get

  若键不存在,get返回None(空),也可以指定不存在的返回值。

 删除

>>> dict.pop("wa")

>>> dict.pop("hehe")

dict-pop

  使用pop(键)就可以删除相应数据,这里删除没有的键也是会报错的

 集合

  集合set,可以看作是数学上的集合,两者有很多共同的特性。

  1. 无序性:一个集合中,每个元素的地位都是相同的,元素之间是无序的。
  2. 互异性:一个集合中,任何两个元素都认为是不相同的,即每个元素只能出现一次。
  3. 确定性:给定一个集合,任给一个元素,该元素或者属于或者不属于该集合,二者必居其一,不允许有模棱两可的情况出现。

  在python中set与dict的区别就是set只有键没有值。所以set中也不可以有可变元素。

>>> set = set([1,2,3])

set-input

  创建set需要调用函数set(list),需要传入一个list,只表示其中的元素,没有顺序,重复信息表示同一个元素。

 添加

>>>set.add(5)

>>>set.add(1)

set-add

  .add()用来添加元素,重复元素不报错,对集合没有改变。

 删除

>>>set.remove(1)

>>>set.remove(7)

set-remove

  删除元素可以用.remove(),和dict一样删除不存在的键会报错,可以使用in判断,来避免报错。

码文不易,如果帮助到您,希望您可以下载一个压缩包,与您无害,与我有益谢谢支持原创

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值