Python 中的数据结构主要分为序列、映射和集合,其中序列有六种内置数据结构,主要用到的是列表(list)和元组(tuple),字符串也是一种序列。映射只有一种内建数据结构,就是字典(dictionary)。
列表 list
列表是最常用的数据类型,它的数据项不需要具有相同的类型,创建一个列表,只要把逗号分隔的不同的数据项使用方括号括起来即可。
列表中的元素可以通过下标(从0开始)引用,也可以直接通过下标截取部分列表。
list_name[n:m:sep]
表示以sep为间隔,截取下标≥n且<m部分的元素,构成新序列,对于负数则从末尾算起,n省略代表从0开始,m省略代表一直截取到末尾,sep省略代表间隔为1。这种操作适用于所有序列,称为切片操作。
可以使用for…in…来循环遍历列表。
python中提供了一些内置函数对列表进行操作
列表相关的内置函数
len(list)
:返回list的长度max(list)
:返回最大的元素(如果可以比较大小)min(list)
:返回最小的元素(如果可以比较大小)list(seq)
:将元组seq转化为列表同时列表作为一种类,有其内置的方法,常用的方法如下
列表的内置方法
list.append(obj)
:在列表尾部添加对象objlist.count(obj)
:统计obj对象在列表中出现的次数list.extend(seq)
:在列表尾部插入新列表seq,相当于list+=seq
list.index(obj)
:从列表中找出某个值第一个匹配项的索引位置,注意索引是从0开始算起的list.insert(index, obj)
:将对象obj插入索引等于index的位置list.pop(index=-1)
:将索引index对应的元素删除并返回该元素,-1索引对应最后一个元素,默认参数为-1list.remove(obj)
:移除列表中第一个和obj对象相同的元素list.reverse()
:反转列表list.sort(cmp=None, key=None, reverse=False)
:对列表进行排序,cmp – 可选参数, 如果指定了该参数会使用该参数的方法进行排序。key – 主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。reverse – 排序规则,reverse = True 降序, reverse = False 升序(默认)。list.copy()
:复制列表,返回新列表list.clear()
:清除列表
元组
元组(Tuple)用于将多个对象保存到一起。可以将元组近似地看作列表,但是元组不能提供列表类能够提供给你的广泛的功能。元组和列表的主要区别在于元组是不可变的,主要用于保证证某一语句或某一用户定义的函数可以安全地采用一组数值。
元组和列表的形式区别在于元组用(,,,)的形式表示
字典
字典中的元素构成一种映射关系,字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中。
键必须是唯一的,但值则不必。值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组。
字典中的元素不能进行排序,因此在创建字典时需要自主排序。
访问字典中的值时,把相应的键放入到方括号中进行访问。
添加或修改元素,只需要直接声明即可:dict[key]=value
删除字典中的元素使用del命令:del dict[key]
清空字典:dict.clear()
字典内置函数&方法
len(dict)
:统计字典里的元素个数
str(dict)
:输出字典,以可打印的字符串表示。
radiansdict.clear()
:删除字典内所有元素
radiansdict.copy()
:返回一个字典的浅复制
radiansdict.fromkeys(seq[, value])
:创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值
radiansdict.get(key, default=None)
:返回指定键的值,如果值不在字典中返回default值
key in dict
:如果键在字典dict里返回true,否则返回false,该方法同样适用于序列
radiansdict.items()
:以列表返回可遍历的(键, 值) 元组数组
radiansdict.keys()
:返回一个迭代器,可以使用 list() 来转换为列表
pop(key[,default])
:删除字典给定键 key 所对应的值,返回值为被删除的值。key值必须给出。 否则,返回default值。
popitem()
:随机返回并删除字典中的一对键和值(一般删除末尾对)。
集合
集合(set)是一个无序不重复元素的序列。
可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。
引用
python中的变量类似java,变量名称仅仅是对对象的引用,需要通过切片操作进行复制才能创建新的副本。