Python数据结构

一、列表

列表方法

Python中列表是可变的,这是它区别于字符串和元组的最重要的特点,一句话概括即:列表可以修改,而字符串和元组不能。

在这里插入图片描述
在这里插入图片描述
注意:类似 insert, remove 或 sort 等修改列表的方法没有返回值。

将列表当做堆栈使用

列表方法使得列表可以很方便的作为一个堆栈来使用,堆栈作为特定的数据结构,最先进入的元素最后一个被释放(后进先出)。用 append() 方法可以把一个元素添加到堆栈顶。用不指定索引的 pop() 方法可以把一个元素从堆栈顶释放出来。
在这里插入图片描述

将列表当作队列使用

也可以把列表当做队列用,只是在队列里第一加入的元素,第一个取出来;但是拿列表用作这样的目的效率不高。在列表的最后添加或者弹出元素速度快,然而在列表里插入或者从头部弹出速度却不快(因为所有其他的元素都得一个一个地移动)。

嵌套列表解析

matrix = [
     [1, 2, 3, 4],
     [5, 6, 7, 8],
     [9, 10, 11, 12],
]
print (matrix)
transposed = []
for i in range(4):
     transposed.append([row[i] for row in matrix])
print (transposed)

在这里插入图片描述

del 语句

使用 del 语句可以从一个列表中根据索引来删除一个元素,而不是值来删除元素。这与使用 pop() 返回一个值不同。可以用 del 语句从列表中删除一个切割,或清空整个列表
在这里插入图片描述

二、元组和序列

元组由若干逗号分隔的值组成

在这里插入图片描述
元组在输出时总是有括号的,以便于正确表达嵌套结构。在输入时可能有或没有括号, 不过括号通常是必须的

三、集合

合是一个无序不重复元素的集。基本功能包括关系测试和消除重复元素。

可以用大括号({})创建集合。注意:如果要创建一个空集合,你必须用 set() 而不是 {} ;
在这里插入图片描述

四、字典

除列表外另一个非常有用的 Python 内建数据类型是字典。
序列是以连续的整数为索引,与此不同的是,字典以关键字为索引,关键字可以是任意不可变类型,通常用字符串或数值。

理解字典的最佳方式是把它看做无序的键=>值对集合。在同一个字典之内,关键字必须是互不相同。

一对大括号创建一个空的字典:{}。
在这里插入图片描述
构造函数 dict() 直接从键值对元组列表中构建字典。

dict([('sape', 4139), ('guido', 4127), ('jack', 4098)])

#{'sape': 4139, 'jack': 4098, 'guido': 4127}

遍历技巧

字典中遍历时,关键字和对应的值可以使用 items() 方法同时解读出来:
在这里插入图片描述
在序列中遍历时,索引位置和对应值可以使用 enumerate() 函数同时得到:
在这里插入图片描述
同时遍历两个或更多的序列,可以使用 zip() 组合:
在这里插入图片描述
要反向遍历一个序列,首先指定这个序列,然后调用 reversed() 函数:
在这里插入图片描述
要按顺序遍历一个序列,使用 sorted() 函数返回一个已排序的序列,并不修改原值:
在这里插入图片描述

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐