Python入门(4)——基础数据结构
码文不易,如果帮助到您,希望您可以下载一个压缩包,与您无害,与我有益谢谢支持原创
在博客上记录学习python的过程,如果有错误,请大家积极指正。
目录
码文不易,如果帮助到您,希望您可以下载一个压缩包,与您无害,与我有益谢谢支持原创
学习环境
- win7
- Python 3.6.3
列表
Python内置的一种数据类型是列表:list。list是一种有序的集合,可以随时添加和删除其中的元素。
如下,便是一个list,描述了我的铅笔盒。
>>> mybox = ["pen","rubber","ruler"] #list
>>> mybox #输出
长度
变量mybox就是一个list。用 ==len()== 函数可以获得list元素的个数;
>>>len(mybox)
获取
list除了可以获得全部数据,当然也可以获取其中一个;
>>>mybox[1]
>>>mybox[-1]
>>> mybox[-3]
>>> mybox[-4]
没错变量后的 ==[ ]== 就可以指定数据,通过脚标来确定数据位置。
要注意的是,角标从 0 开始,初学者要摆脱从1开始的思维定式
除了正向,还可以反向查询。-1 表示最后一个数据。
当角标超出范围时就会报错,如图中最后 ==list index out of range==
修改
list不光可以获取单个信息,也可以修改。
>>> mybox.insert(1,"pencil") #在第一个元素后插入"pencil"
>>> mybox.pop(3)#删除第三个元素
>>> mybox[1] = "ruler" #修改list中第二个数据为"ruler"
.insert()
在指定位置插入,参数信息 (整数(代表位置) ,任意数据类型(要存入的数据))
.pop()
删除指定位置数据,参数信息 (整数(代表位置))
还有就是直接赋值,很简单就不赘述了
更多
有人可能注意到了,之前的示例list中数据都是字符串,其实并不是只能用一种数据类型,一个list中可以有不同数据类型。
>>> box = [123,"hello",False,1.1] #整数 字符串 布尔值 浮点数
>>> list = [123 , ["haha",1],923] # list嵌套
>>> list[1]
>>> list[1][1]
list中不光可以有不同的数据类型,包括 ==list本身==
元组
元组(tuple)是关系数据库中的基本概念,关系是一张表,表中的每行(即数据库中的每条记录)就是一个元组,每列就是一个属性。 在二维表里,元组也称为行。—— [百度百科](https://baike.baidu.com/item/%E5%85%83%E7%BB%84 "元组")
在python中tuple是一旦初始化就不能修改的有序列表
>>> math = ('one', 'two', 'three')
注意他与list的区别就是初始化时括号不一样,获取数据方法相同 math[1]就是获取”two”。
需要注意的是,当只有一项时
>>> a = (1,)
需要加逗号来避免歧义
tuple中同样可以存放任何类型,值得一提的是,tuple中可以存list,对于tuple来说是不变的,因为它只存了指向list的指针,而整体来看,它又是可变的,十分奇妙.
字典
字典dict,是python中的一种无序可变存储模型,采用键值存储,查找速度快,但是占用内存较大,在其他语言中也有叫map的。
>>> dict = {"a":1,"b":True,"c":"hahah"}
>>> dict
>>> dict["a"]
>>> dict["c"]
首先从表面看,dict与list和tuple都不同。dict要设定键(类似于角标),键必须是唯一的,而寻值是通过键来寻找,仅此一点他就有很大的价值;例如,班级中按照名字查成绩,全国按地区查看天气等。不仅如此,dict的查询速度极快,特别是数据量极大时,它的优势现实的淋漓尽致。dict内核采用
哈希算法 ,也就是直接通过键值运算求出值所在位置,因此键一定是不可变的,如字符串,整数浮点数。
如图所示,tuple是不可变的可以当作键来使用,而list是可变的所以不能当作键。
赋值
>>> dict["a"] = 99
>>> dict['wa'] = 1
dict可以通过键修改值,也可以添加键值对。
查找
>>> dict['wa']
>>> dict["hehe"]
但是若查找不存在的键,就会报错。python提供了in和get来避免报错。
in
>>> "hehe" in dict
>>> if "hehe" in dict:
... dict["hehe"]
...else:
... 0
...
键值 in dict
返回存在或不存在,适用于条件语句,帮助我们避免报错。
get
>>> dict.get("hehe")
>>> dict.get("hehe",987)
若键不存在,get返回None(空),也可以指定不存在的返回值。
删除
>>> dict.pop("wa")
>>> dict.pop("hehe")
使用pop(键)就可以删除相应数据,这里删除没有的键也是会报错的
集合
集合set,可以看作是数学上的集合,两者有很多共同的特性。
- 无序性:一个集合中,每个元素的地位都是相同的,元素之间是无序的。
- 互异性:一个集合中,任何两个元素都认为是不相同的,即每个元素只能出现一次。
- 确定性:给定一个集合,任给一个元素,该元素或者属于或者不属于该集合,二者必居其一,不允许有模棱两可的情况出现。
在python中set与dict的区别就是set只有键没有值。所以set中也不可以有可变元素。
>>> set = set([1,2,3])
创建set需要调用函数set(list),需要传入一个list,只表示其中的元素,没有顺序,重复信息表示同一个元素。
添加
>>>set.add(5)
>>>set.add(1)
.add()用来添加元素,重复元素不报错,对集合没有改变。
删除
>>>set.remove(1)
>>>set.remove(7)
删除元素可以用.remove(),和dict一样删除不存在的键会报错,可以使用in判断,来避免报错。
码文不易,如果帮助到您,希望您可以下载一个压缩包,与您无害,与我有益谢谢支持原创