时间:2021-05-23
队列是FIFO, 但是List对于First Out效率不够高。通常用双端队列Deque来实现队列
Deque的特点是,两端添加和删除都是O(1)的时间复杂度
from collections import dequequeue = deque(["Eric", "John", "Michael"])# 入队列queue.append("Terry")# 出队列queue.popleft()与List非常相似,但是Tuple是不可变的数据结构
# 创建, 等号右边可以用括号扩起来empty = ()xyz = 12345, 54321, 'hello!'one = 12345,## Unpackingx, y, z = xyzx, = oneTuple内部是可以有List这样可变的元素的
a = [1,2,3]b = [4,5,6]# 创建, 等号右边可以用括号扩起来t = (a, b) # ([1, 2, 3], [4, 5, 6])a.append(4)b.append(7)print(t)# ([1, 2, 3, 4], [4, 5, 6, 7])如果Tuple足够满足,那么Tuple由以下两个优势:
Tuple创建方式
import timeit# 从Range转换Tuple 这种速度最快,推荐此方法timeit.timeit('''t = tuple(range(10000))''', number = 10000)# 从List创建Tupletimeit.timeit('''t = tuple([i for i in range(10000)])''', number = 10000)# 从Range创建Tupletimeit.timeit('''t = tuple(i for i in range(10000))''', number = 10000)# Unpacking生成器创建Tupletimeit.timeit('''t = *(i for i in range(10000)),''', number = 10000)序列数据结构(List, Tuple, Range)的一种, 常与For循环一起使用
# 0 - 9val = range(10)val = range(0, 10)val = range(0, 10, 1)字典由(Key: Value)对组成,对于Key的要求是不可变类型(String, Number等),
所以Tuple可以作为Key,但是List却不行。
# {'sape': 4139, 'guido': 4127, 'jack': 4098}d = dict([('sape', 4139), ('guido', 4127), ('jack', 4098)])# {2: 4, 4: 16, 6: 36}d = {x: x**2 for x in (2, 4, 6)}# {'sape': 4139, 'guido': 4127, 'jack': 4098}d = dict(sape=4139, guido=4127, jack=4098)但是如果Tuple内包含可变类型,那么也不能作为Key, 会出现如下错误:
TypeError: unhashable type: 'list'生成式(List Comprehensions)提供一种简洁的方式创建列表
# [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]# 创建列表squares = []for x in range(10): squares.append(x**2)# 生成式squares = [x**2 for x in range(10)]生成器与生成式语法相似,只是生成器是懒加载模式,不会立即生成整个列表
import sys# 元素已经就绪,耗费较多的内存l = [i for i in range(2 ** 24)] print(sys.getsizeof(l)) # 146916504 // 8 = 2 ** 24 # 创建生成器对象, 不占用额外空间,但是需要数据的时候需要内部运算l = (i for i in range(2 ** 24)) print(sys.getsizeof(l)) # 128除了上面的生成器语法,还有一种就是通过yield关键字
def fib(n): a, b = 0, 1 for _ in range(n): a, b = b, a + b yield aif __name__ == '__main__': for val in fib(20): print(val)返回Tuple的迭代器, 第i个元素来自于参数中每一个第i个元素, 长度等于最短的那个参数
以上就是python中常用的数据结构介绍的详细内容,更多关于python 数据结构的资料请关注其它相关文章!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本文详细罗列归纳了Python常见数据结构,并附以实例加以说明,相信对读者有一定的参考借鉴价值。总体而言Python中常见的数据结构可以统称为容器(contai
上文对数据结构与算法,有了一个简单的概述与介绍,这篇文章,我们介绍一中典型数据结构——线性结构。什么是线性结构,线性结构是最简单、最基本、最常用的数据结构。线性
上文对数据结构与算法,有了一个简单的概述与介绍,这篇文章,我们介绍一中典型数据结构——线性结构。什么是线性结构,线性结构是最简单、最基本、最常用的数据结构。线性
数据结构:通俗点说,就是储存大量数据的容器。这里主要介绍Python的4种基本数据结构:列表、字典、元组、集合。格式如下:列表:list=[val1,val2,
海量数据处理中常用到的技术1.BloomFiltering基本的BloomFiltering支持快速的插入和查找操作,是一种hash表技术。基本的数据结构非常简