对于每种编程语言一般都会规定一些容器来保存某些数据,就像java的集合和数组一样python也同样有这样的结构 而对于python他有四个这样的内置容器来存储数据,他们都是python语言的一部分可以直接使用而无需额外的导入 一.列表(list) 列表一种跟java和c中的数据很像的一种数据结构,他都是保存一系列相似,且有序元素的集合,不过不同的是列表中的元素可以不是同一种数据类型,且列表的长度是可变的 可以动态的增加可减少这一点则有点像java中的stringBuilder对象,列表中有一点值…
1.dict 无序,可更改 2.tuple 有序,不可更改 3.list 有序,可更改(增加,删除) 4.set 无序,可能改 {元素1,元素2,元素3.....}和字典一样都是用大括号定义,不过不同的是其中没有冒号分割,还有一种定义方法是向set()函数中传递任意一个序列(如一个字符串set('fsdaf')) 2集合的运算: python中的集合同于数学中的集合同样有交,并,差等运算其中并算提供方法union(),差集方法difference()不过这里不同的是只能显示使用该方法的集合中不同…
1. Python序列之元组:不可修改的序列 元组其实跟列表差不多,也是存一组数,只不是它一旦创建,便不能像列表式的增删改,只能查,切片,所以元组又叫只读列表. 元组用圆括号括起(这是通常采用的做法). 1.1 函数tuple 函数tuple的工作原理与list类似:它将一个序列作为参数,并将其转换为元组.如果参数已经是元组,就原封不动地返回它.它同样是工厂函数. >>> tuple([1, 2, 3]) (1, 2, 3) >>> tuple('abc') ('a',…
列表的一些特点: 列表是最常用的线性数据结构 list是一系列元素的有序组合 list是可变的 列表的操作, 增:append.extend.insert 删:clear.pop.remove 改:reverse.sort 查:count.index 其他:copy >>> [a for a in dir(list) if not a.startswith('__')]['append', 'clear', 'copy', 'count', 'extend', 'index', 'ins…
Python 内置的数据结构 ​ 到目前为止,我们如果想保存一些数据,只能通过变量.但是如果遇到较多的数据要保存,这个时候时候用变量就变的不太现实. ​ 我们需要能够保存大量数据的类似变量的东东,这种东东就是数据结构(Data Structures). ​ 数据结构,它们只是一种结构,能够将一些数据聚合在一起的结构.换句话说,它们是用来存储一系列相关数据的集合. ​ python 提供了 4 种内置数据结构:List(列表).Tuple(元组).Dictionary(字典).Set(集合) ​…
Python语言简洁明了,可以用较少的代码实现同样的功能.这其中Python的四个内置数据类型功不可没,他们即是list, tuple, dict, set.这里对他们进行一个简明的总结. List 字面意思就是一个集合,在Python中List中的元素用中括号[]来表示,可以这样定义一个List: L = [12, 'China', 19.998] 可以看到并不要求元素的类型都是一样的.当然也可以定义一个空的List: L = [] Python中的List是有序的,所以要访问List的话显然…
Python提供了4个内置数据结构(内置指可以直接使用,无需先导入),可以保存任何对象集合,分别是列表.元组.字典和集合. 一.列表有序的可变对象集合. 1.列表的创建例子 list1 = []list2 = list() list3 = ['hello', 123] list4 = [[1,2],['a','b']] 2.列表常用方法 L.index(v [, begin[, end]]) 返回对应元素的索引下标, begin为开始索引,end为结束索引,当 value 不存在时触发Value…
Python内置数据结构一共有6类: 数字 字符串 列表 元组 字典 文件 一.数字 数字类型就没什么好说的了,大家自行理解 二.字符串 1.字符串的特性(重要): 序列化特性:字符串具有一个很重要的特性那就是字符串具有序列化. 不可变特性:字符串第二个特性就是不可变化. 这两个特点用一句话概括就是:一旦将字符串赋值后这个值就固定了,并且它的每个字符是有顺序的,它的顺序不能变化,本身就不可再被修改. 那就没办法变化了么?也不是绝对,既然他自身不可变化,那么我们就用'+'的方式把它赋值给另外一个变…
算法与内置数据结构 常用算法和数据结构 sorted dict/list/set/tuple 分析时间/空间复杂度 实现常见数据结构和算法 数据结构/算法 语言内置 内置库 线性结构 list(列表)/tuple(元祖) array(数组,不常用)/collection.namedtuple 链式结构 collections.deque(双端队列) 字典结构 dict(字典) collections.Counter(计数器)/OrderedDict(有序字典) 集合结构 set(集合)/froz…
Python内置数据结构 五.集合(set) python 还提供了另外一种数据类型:set. set用于包含一组无序的不重复对象.所以set中的元素有点像dict的key.这是set与 list的最大区别 set基本应用有元素测试.去除list.tuple中的重复元素. set也支持一些数学操作,像:并集(union).交集(intersection).差集(difference).对称差集(symmetric difference). set集合创建方式一般有 2 种:字面量方式和把list…
原创作品,转载请标明:http://blog.csdn.net/Xiejingfa/article/details/51111230 今天为大家带来Redis中zipmap数据结构的分析,该结构定义在zipmap.h和zipmap.c文件里.我把zipmap称作"压缩字典"(不知道这样称呼正不对)是因为zipmap利用字符串实现了一个简单的hash_table结构,又通过固定的字节表示节省空间. zipmap和前面介绍的ziplist结构十分相似,我们能够对照地进行学习: Redis中…
Python支持四种不同的数值类型,包括int(整数)long(长整数)float(浮点实际值)complex (复数),本文章向码农介绍python 四种数值类型,需要的朋友可以参考一下. 数字数据类型存储数值.他们是不可改变的数据类型,这意味着改变数字数据类型的结果,在一个新分配的对象的值.Number对象被创建,当你给他们指派一个值.例如: var1 = 1 var2 = 10 您也可以删除数字对象的参考,使用del语句.del语句的语法是: del var1[,var2[,var3[..…
本节内容: 列表 元组 字符串 集合 字典 本节先介绍列表. 一.列表 一种容器类型.列表可以包含任何种类的对象,比如说数字.子串.嵌套其他列表.嵌套元组. 任意对象的有序集合,通过索引访问其中的元素.其长度可变,支持异构(在一个列表中可以包含多种不同类型的元素),可以任意嵌套. 列表是可变对象,支持在原处修改.列表的可变变现在其内部的每一个元素存储在列表中不是对象本身,而是对象的引用.因此其修改的是对象的引用. help()是ipython里特有的函数,可以打印出类.函数的一些信息. In […
Python 内置的数据结构 三.元组(tuple) python 作为一个发展中的语言,也提供了其他的一些数据类型. tuple也是 python 中一个标准的序列类型. 他的一些操作和str和list是通用的,因为他们都是一种序列(sequence data type) 支持索引.切片.连接,支持使用内置len()来获取tuple中元素的个数. 另外tuple是不可变对象,所以不能对tuple做修改. 元组与列表相似,不同之处在于元组的元素不能修改 3.1 元组的创建 元组使用()定义,用于…
Python支持四种不同的数值类型,包括int(整数)long(长整数)float(浮点实际值)complex (复数), 数字数据类型存储数值.他们是不可改变的数据类型,这意味着改变数字数据类型的结果,在一个新分配的对象的值. Number对象被创建,当你给他们指派一个值.例如: 1 2 var1 = 1 var2 = 10 您也可以删除数字对象的参考,使用del语句. del语句的语法是: 1 del var1[,var2[,var3[....,varN]]]] 你可以使用del语句删除单个…
getsizeof的局限 python非内置数据类型的对象无法用sys.getsizeof()获得真实的大小,例: import networkx as nx import sys G = nx.Graph() l = [i for i in xrange(10000)] print "size of l:", sys.getsizeof(l) G.add_nodes_from(l) print "size of graph:", sys.getsizeof(G)…
在这之前,先了解super()和__new__()方法 super()方法: 返回一个父类或兄弟类类型的代理对象,让你能够调用一些从继承过来的方法. 它有两个典型作用: a. 在单继承的类层次结构中,super()可用于引用父类而不显式父类名称,从而使代码更易于维护. b. 在多重继承中,可以保证公共父类仅被执行一次. __new__方法: a.它是一个类级别的静态方法.通常用于控制生成一个新实例的过程. b.返回的是一个实例化出来的实例 下面为四种实现单例模式的方法 1. 使用__new__方…
定义和初始化 #tuple() 使用工厂函数tuple定义一个空元组 #() 使用圆括号定义一个空元组 #(1,2,3) 使用圆括号定义有初始值的元组 #tuple(可迭代对象) 把可迭代对象转换为一个元组 In [1]: tup=tuple();print(tup) () In [2]: tup=();print(tup) () In [3]: tup=(1,2,3);print(tup) (1, 2, 3) In [5]: tup=tuple(range(0,2));print(tup) (…
引言 我们之前使用线程的时候都是使用 new Thread 来进行线程的创建,但是这样会有一些问题 每次 new Thread 新建对象性能差 线程缺乏统一管理,可能无限制新建线程,相互之间竞争,及可能占用过多系统资源导致死机 缺乏更多功能,如定时执行.定期执行.线程中断. 相比 new Thread,Java 提供的四种线程池的好处在于: 重用存在的线程,减少对象创建.消亡的开销,性能佳. 可有效控制最大并发线程数,提高系统资源的使用率,同时避免过多资源竞争,避免堵塞. 提供定时执行.定期执行…
分支结构:有条件的执行某语句,并非每句必走 1)if结构:1条路 2)if...else结构:2条路 3)if...else if结构:多条路 4)switch...case结构:多条路 优点:效率高.结构清晰 缺点:整数.相等 break:跳出switch 一.if结构的认识 /* * 1.if结构:1条路 * 1)语法: * if(boolean){ * 语句块 * } * 2)执行过程: * 判断boolean的值: * 若为true,则执行语句块 * 若为false,则不执行语句块 */…
1. 字典 字典是Python中唯一的内置映射类型,其中的值不按顺序排列,而是存储在键下.键可能是数(整数索引).字符串或元组.字典(日常生活中的字典和Python字典)旨在让你能够轻松地找到特定的单词(键),以获悉其定义(值). 字典用{}括起开. 在很多情况下,使用字典都比使用列表更合适.下面是Python字典的一些用途: 表示棋盘的状态,其中每个键都是由坐标组成的元组: 存储文件修改时间,其中的键为文件名: 数字电话/地址簿. 1.1 函数 dict 可使用函数dict从其他映射(如其他字…
Python 内置的数据结构 四.字典(dict) 字典也是 python 提供给我们的又一个非常重要且有用的数据结构. 字典在别的语言中有时叫关联数组.关联内存.Map等. 字典中存储的是一系列的key-value,这些key-value称之为键值对. 字典与前面学习的序列不同,序列通过index来索引数据,而字典则是通过key来索引value. 最好把字典认为是一系列无序键值对的集合. 序列(list):使用[]定义 元组(tuple):使用()定义 字典(dict):使用{}定义 键(ke…
原创作品,转载请标明:http://blog.csdn.net/Xiejingfa/article/details/51018337 今天我们来讲讲Redis中的哈希表. 哈希表在C++中相应的是map数据结构.但在Redis中称作dict(字典).Redis仅仅是用了几个简单的结构体和几种常见的哈希算法就实现了一个简单的相似高级语言中的map结构.以下我们来详细分析一下dict的实现. 在学习数据结构的时候.我们接触过一种称作"散列表"的结构,能够依据关键字而直接訪问记录. 说的详细…
1. 数据结构回顾 所有标准序列操作(索引.切片.乘法.成员资格检查.长度.最小值和最大值)都适用于字符串,但是字符串是不可变序列,因此所有的元素赋值和切片赋值都是非法的. >>> website = 'http://www.python.org' >>> website[-3:] = 'com' Traceback (most recent call last): File "<pyshell#19>", line 1, in ? we…
1. Python的数据类型简介 数据结构是以某种方式(如通过编号)组合起来的数据元素(如数.字符乃至其他数据结构)集合.在Python中,最基本的数据结构为序列(sequence). Python内置了多种序列,如列表,元组,字符串(由字符组成的序列). Python支持一种数据结构的基本概念,名为容器(container).容器基本上就是可包含其他对象的对象.两种主要的容器是序列(列表和元组)和映射(字典). 在序列中,每个元素都有编号.在映射中,每个元素都有名称(也叫键).有一种既不是序列…
Python 内置的数据结构 二.列表(list) 想一想: 前面学习的字符串可以用来存储一串信息,那么想一想,怎样存储咱们班所有同学的名字呢? 定义100个变量,每个变量存放一个学生的姓名可行吗?有更好的办法吗? 答: 列表 列表介绍 listpython 中一般把它翻译为列表. list 是 python 中用途最广的一种数据结构. list 可以存储多个数据,这些数据用 [ ] 包裹,各个数据之间用 , 分割. list中的元素可以是任意类型的,但是实际使用的时,一个list 中一般只存储…
转载自:http://www.orangecube.net/python-time-complexity 本文翻译自Python Wiki 本文基于GPL v2协议,转载请保留此协议. 本页面涵盖了Python中若干方法的时间复杂度(或者叫“大欧”,“Big O”).该时间复杂度的计算基于当前(译注:至少是2011年之前)的CPython实现.其他Python的实现(包括老版本或者尚在开发的CPython实现)可能会在性能表现上有些许小小的差异,但一般不超过一个O(log n)项. 本文中,’n…
切片 通过索引区间访问线性结构的一段数据 sequence[start:stop] 表示返回[start,stop]区间的子序列 支持负索引 start为0,可以省略 stop为末尾,可以省略 超过上界(右边界),就取到末尾:超过下界(左边界),取到开头 start一定要早stop的左边 [:]表示从头到尾,全部元素被取出,等效copy()方法 切片举例: print('www.magedu.com'[4:10]) #打印4到9的字符,执行结果magedu print('www.magedu.c…
数据类型: 数值型 int float complex bool 序列对象 字符串 str 列表 list 元组 tuple 键值对 集合 set 字典dict 数值型: int.float.complex.bool都是class,1.5.0.2+3j都是对象既实例 int:python3的int就是长整型,且没有大小限制.受限于内存区域的大小 float:有整数部分和小数部门组成,支持十进制和科学计数法表示,只有双精度型. complex:有实数和虚数部分组成,实数部分和虚数部分都是浮点型.3…
字符串 一个个字符组成的有序的序列,是字符的集合 使用单引号,双引号,三引号引住的字符序列 字符串是不可变对象 Python3起,字符串就是Unicode类型 字符串定义 初始化 s1 = 'string' s2 = 'string2' s3 = ''' this's a "string" ''' s4 = 'hello \n jaxzhai.com'   #\n 转义,换行 s5 = r'hello \n jaxzhai.com'  #加r  \n 不转义 s6 = "c:…