python中的数据结构 |
您所在的位置:网站首页 › map数据结构类型 › python中的数据结构 |
数据结构是高效存储和组织数据的一种方法,它允许你轻松访问和执行数据操作。 在数据结构方面,没有一种适合所有类型的模型。根据不同的需要选择不同的方式来存储数据。 也许你想把所有类型的数据存储在一起,或者你想要一些更快的数据搜索,或者一些只存储不同数据项的东西。 Python有许多内置的数据结构,可以帮助我们轻松地组织数据,因此有必要先了解这些,以便我们在处理数据时,确切地知道哪些数据结构将有效地解决我们的问题。 Python中的内置数据结构(Built-in Data Structure)包括:列表list、元组tuple、字典dict、集合set。 1)列表(list) 列表(List)是一种有序和可更改的集合。Python中的列表是最通用的数据结构,它们用于存储异构数据项。 元素可以是任何数据类型,如数字、字符串等,甚至是另一个列表。 1.1 特点 列表中的每个元素均可变:意味着可以对每个元素进行修改和删除。 列表是有序的:每个元素的位置是确定的,可以用索引去访问每个元素。 列表中的元素可以是Python中的任何对象:元素可以是字符串、整数、元组、也可以是list等Python中的对象。 Python中的list和C语言中的数组很像,只是list中的元素类型可以为Python中的任意对象,C中的数组只能是同种类型。 >>> x = [1,2,3] >>> y = {'name':'Sakura'} >>> z="Test" >>> a=[x,y,z] >>> a [[1, 2, 3], {'name': 'Sakura'}, 'Test'] 注意 :list不仅可以像数组那样正向索引,也可以反向索引。 1.2 常用方法 thislist = ["apple", "banana", "cherry"] # 创建 print(thislist[1]) # 通过索引号访问 print(thislist[-1]) # 反向索引,-1表示最后一个 print(thislist[2:5]) # 通过指定范围的起点和终点来指定索引范围,返回值将是包含指定项目的新列表,注意是左闭右开 thislist[1] = "mango" # 改 print(len(thislist)) # 列表长度 切片 切片是Python中序列结构独有的一种操作,意思是从序列中选取一个子序列,凡是序列均可切片,list是序列,所以list可以切片。 # 通过[begin:end]方式完成切片 mylist = [1,2,3,4,5] mylist[0:2] # 生成的序列为[1,2,3] 检查是否存在指定的项 使用 in 关键字 thislist = ["apple", "banana", "cherry"] if "apple" in thislist: print("Yes, 'apple' is in the fruits list") 添加项目 append()或者insert() thislist = ["apple", "banana", "cherry"] thislist.append("orange") # 将项目添加到列表的末尾 thislist.insert(1, "orange") # 在指定的索引处添加项目 1 2 3 删除项目 remove()或者pop()或者del或者clear() thislist = ["apple", "banana", "cherry"] thislist.remove("banana") # 删除指定的项目 thislist.pop() # 删除指定的索引(如果未指定索引,则删除最后一项) del thislist[0] # 删除指定的索引 thislist.clear() # 清空列表 复制列表 copy()或者list() list2 = list1 # 注意:list2 将只是对 list1 的引用,list1 中所做的更改也将自动在 list2 中进行。 thislist = ["apple", "banana", "cherry"] mylist = thislist.copy() # 使用内置的 List 方法 copy() mylist = list(thislist) # 使用内建的方法 list() 合并两个列表 使用 + 运算符或者extend() list1 = ["a", "b" , "c"] list2 = [1, 2, 3] list3 = list1 + list2 list1.extend(list2) 常用的内建方法: 方法 描述 append() 在列表的末尾添加一个元素 clear() 删除列表中的所有元素 copy() 返回列表的副本 count() 返回具有指定值的元素数量。 extend() 将列表元素(或任何可迭代的元素)添加到当前列表的末尾 index() 返回具有指定值的第一个元素的索引 insert() 在指定位置添加元素 pop() 删除指定位置的元素 remove() 删除具有指定值的项目 reverse() 颠倒列表的顺序 sort() 对列表进行排序 2)元组(Tuple) 元组是有序且不可更改的集合。元组为一个固定的列表,一旦初始化其中的元素便不可修改,只能对元素进行查询。 2.1 特点 tuple不支持对元素的修改(包括删除),tuple一初始化便固定下来了。 涉及到Python中的可变对象和不可变对象,像list这样的就是可变对象,tuple便是不可变对象。 因为tuple不可变,所以代码更安全。如果可能,能用tuple代替list就尽量用tuple。 2.2 常见操作 因为元组是固定的列表,所以其内置的大多数的方法和列表是差不多的。 如需创建仅包含一个项目的元组,必须在该项目后添加一个逗号,否则 Python 无法将变量识别为元组。 空的tuple可以记为(),若只有一个元素的tuple记为(1,) 可以通过tuple将序列转换为元组,用法和list一样。 创建元组后,将无法更改其值,但是有一种解决方法:可以将元组转换为列表,更改列表,然后将列表转换回元组。 del 关键字可以完全删除元组。 3)字典(Dictionary) 字典是一个无序、可变和有索引的集合。Python中使用键(key)-值(value)存储,也就是C++中的map。 3.1 特点 字典中的数据必须以键值对的形式出现。 键不可重复,值可重复。 字典中键(key)是不可变的,为不可变对象,不能进行修改;而值(value)是可以修改的,可以是任何对象。 3.2 常见操作 thisdict = { # 创建 "brand": "Porsche", "model": "911", "year": 1963 } x = thisdict["model"] # 获取 "model" 键的值 x = thisdict.get("model") # 同上 thisdict["year"] = 2019 # 更改 for x in thisdict.values(): # 使用 values() 函数返回字典的值 print(x) for x, y in thisdict.items(): # 使用 items() 函数遍历键和值 print(x, y) thisdict.pop("model") # pop() 方法删除具有指定键名的项 del thisdict["model"] # del 关键字删除具有指定键名的项目 mydict = thisdict.copy() # 使用 copy() 方法来复制字典 mydict = dict(thisdict) # 使用 dict() 方法创建字典的副本 注意:不能通过键入 dict2 = dict1 来复制字典,因为:dict2 只是对 dict1 的引用,而 dict1 中的更改也将自动在 dict2 中进行。 判断字典中是否(不)存在某个key in 、not in #生成一个字典 d = {'name':Tom, 'age':10, 'Tel':110} #打印返回值,其中d.keys()是列出字典所有的key print ‘name’ in d.keys() print 'name' in d print 'aaa' not in d #三个的结果都是返回True 4)集合(Set) 集合是无序和无索引的集合。 4.1 特点 集合更接近数学上集合的概念。集合中每个元素都是无序的、不重复的任意对象。 可以通过集合去判断数据的从属关系,也可以通过集合把数据结构中重复的元素减掉。 集合一旦创建,就无法更改项目,但是可以添加新项目。 4.2 常见操作 集合可做集合运算,可添加和删除元素。 集合的创建 创建集合时需要用list作为输入集合,可通过add()方法增加元素,remove()方法删除元素。 集合中重复的元素会被过滤掉。 使用 update() 方法将多个项添加到集合中。 >>> test=set([1,2,3]) >>> test {1, 2, 3} thisset = {"apple", "banana", "cherry"} thisset.update(["orange", "mango", "grapes"]) 合并两个集合 可以使用 union() 方法返回包含两个集合中所有项目的新集合,也可以使用 update() 方法将一个集合中的所有项目插入另一个集合中。 set1 = {"a", "b" , "c"} set2 = {1, 2, 3} set3 = set1.union(set2) set1.update(set2) 集合的运算 Python中的集合也可以进行集合的之间的交、并等运算。 >>> s1 = set([1,2]) >>> s2=set([2,3]) >>> s1 & s2 # s1与s2 {2} >>> s1 | s2 # s1与s2进行或运算 {1, 2, 3} |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |