掌握了Python的数据类型.语句和函数,基本上就可以编写出很多有用的程序了. 比如构造一个1, 3, 5, 7, ..., 99的列表,可以通过循环实现: L = [] n = 1 while n <= 99: L.append(n) n = n + 2 取list的前一半的元素,也可以通过循环实现. 但是在Python中,代码不是越多越好,而是越少越好.代码不是越复杂越好,而是越简单越好. 基于这一思想,我们来介绍Python中非常有用的高级特性,1行代码能实现的功能,决不写5行代码.请始终…
1.通过前面4篇文章对Spring IoC容器的源码分析,我们已经基本上了解了Spring IoC容器对Bean定义资源的定位.读入和解析过程,同时也清楚了当用户通过getBean方法向IoC容器获取被管理的Bean时,IoC容器对Bean进行的初始化和依赖注入过程,这些是Spring IoC容器的基本功能特性.Spring IoC容器还有一些高级特性,如使用lazy-init属性对Bean预初始化.FactoryBean产生或者修饰Bean对象的生成.IoC容器初始化Bean过程中使用Bean…
第一篇中介绍了Redis是一个强大的键-值仓储,支持五种灵活的数据结构.其实,Redis还支持其他的一些高级特性:事务.公布与订阅.管道.脚本等,本篇我们来看一下事务. 前一篇中我们提到,在Redis中每一个命令都是原子性的,由于Redis内部的实现是单线程的.当然Redis也支持多个命令之间的事务,只是事务在Redis中相对来说非常easy.不像数据库事务那样涉及传播级别.隔离级别等特性. 使用multi命令開始一个新的事务.exec命令提交,discard命令回滚.假设把信用卡的可用额度存入…
知识点 切片 切片 取一个list或tuple的部分元素. 原理:调用__getitem__,__setitem__,__delitem__和slice函数. 根据官方的帮助文档(https://docs.python.org/2/library/operator.html)可知,_getitem_返回元素的下标,_setitem_设置元素的值,_remove_删除元素的值.…
1.切片 有一个list—>L = [1,2,3,4,5,6,7]或tuple—>T = (1,2,3,4,5,6,7),如果想取得前三个元素,怎么操作? 硬方法,也是低效的方法是:L= L[L[0], L[1], L[2]].但是如果数量多,就算是用循环也很麻烦.但是Python提供了,Slice切片操作符.如下: >>> L[0:3] [1,2,3] L[0:3]表示,从索引0开始取,直到索引3为止,但不包括索引3.即索引0,1,2,正好是3个元素.如果第一个索引是0,还…
5.迭代器 由之前的生成器可知,for循环用于可迭代对象:Iterable.包括集合数据类型: list.tuple.dict.set.str 等,以及两种生成器.判断迭代器,使用 isinstance(type, Iterable) .还有的是,可以被next()函数调用并不断返回下一个值的对象称为迭代器:Iterator.注意定义区分:生成器都是Iterator对象,但list.dict.str虽然是Iterable(可迭代的),却不是Iterator(迭代器). 理解:Python的Ite…
4.生成器(generator) 通过列表生成式,我们可以直接创建一个列表.但是,受到内存限制,列表容量肯定是有限的.如果列表元素可以按照某种算法推算出来,那我们是否可以在循环的过程中不断推算出后续的元素呢?这样就不必创建完整的list,从而节省大量的空间. 创建一个generator,有很多种方法.第一种方法很简单,只要把一个列表生成式的[]改成(),就创建了一个generator: >>> g = (x * x for x in range(1, 11) if x % 2 == 0)…
3.列表生成器(List Comprehensions) 列表生成式即List Comprehensions,是Python内置的非常简单却强大的可以用来创建list的生成式.举个例子,要生成list [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]可以用list(range(1, 11)): >>> list(range(1, 11)) [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 还有一种常用的简洁的方法: >>> [x * x fo…
2.迭代 如果给定一个list或tuple,我们可以通过for循环来遍历这个list或tuple,这种遍历我们称为迭代(Iteration).在Python中,迭代是通过for ... in来完成的. 只要是可迭代对象,无论有无下标,都可以迭代,比如dict就可以迭代key: >>> d = {'a': 1, 'b': 2, 'c': 3} >>> for key in d: ... print(key) ... a b c 还可以迭代value,通过 for valu…
apply() 方法 apply方法是Scala提供的一个语法糖 类名+括号,调用对象的apply方法 对象名+括号,调用类的apply方法 对apply方法的简单测试:(其中,带 new -- class ApplyTest,不带 new -- object ApplyTest) class ApplyTest { println("class ApplyTest") def apply() { println("class APPLY method") } }…
一.切片 list.tuple常常截取某一段元素,截取某一段元素的操作很常用 ,所以python提供了切片功能. L=['a','b','c','d','e','f'] #取索引0,到索引3的元素,不包括索引3 print(L[0:3]) #开始索引为0可以省略 print(L[:3]) #下标1到3 print(L[1:3]) #取最后一个元素 print(L[-1]) #取倒数后两个元素 print(L[-2:]) #取前四个数,每两个取一个 print(L[:4:2]) #所有数,每两个取…
Python中 1行代码能实现的功能,决不写5行代码.请始终牢记,代码越少,开发效率越高. 切片 取一个list或tuple的部分元素是非常常见的操作.Python提供了切片(Slice)操作符 L = ['老于', '小王', '小明', 'Bob', 'Jack'] print(L[0:3]); 输出结果 ['老于', '小王', '小明'] L[0:3]表示,从索引0开始取,直到索引3为止,但不包括索引3 如果个索引是0,还可以省略: >>> L[:3] ['老于', '小王',…
摘录廖雪峰网站 定义一个list: 1 L = ['haha','xixi','hehe','heihei','gaga'] 取其前三个元素: >>> L[0],L[1],L[2] ('haha', 'xixi', 'hehe') 这个方法有点蠢,因为如果元素非常多,我们需要取其前N个元素,怎么办? 可能会想到用循环: >>> r=[] >>> n = 3 >>> for i in range(n): ... r.append(L[i…
摘录廖雪峰网站 定义一个list: L = ['haha','xixi','hehe','heihei','gaga'] 取其前三个元素: >>> L[0],L[1],L[2] ('haha', 'xixi', 'hehe') 这个方法有点蠢,因为如果元素非常多,我们需要取其前N个元素,怎么办? 可能会想到用循环: >>> r=[] >>> n = 3 >>> for i in range(n): ... r.append(L[i])…
一:Web存储 数据以 键/值 对存在, web网页的数据只允许该网页访问使用. web存储有两种: localStorage - 没有时间限制的数据存储,存于浏览器缓存 sessionStorage - 针对一个 session 的数据存储,绘画关闭就清理 if(typeof(Storage)!=="undefined")//检查是否支持web存储 { // Yes! localStorage and sessionStorage support! localStorage.key…
参考:列表生成式 Note 1.List Comprehensions,即列表生成式,是Python中内置的非常强大的list生成式. eg.生成一个列表:[1*1, 2*2, ..., 10*10] 使用for...in的方法: #!/usr/bin/env python3 L1 = [] for i in range(1, 11) : L1.append(i*i) print(L1) 使用列表生成式: L2 = [i*i for i in range(1, 11)] print(L2) ou…
# 切片(获取list / tuple / 字符串 中指定的元素) l = list(range(10)) l[0:3] l[:3] # 0可以省略 l[:] # 全部 l[3:] # 最后的可以省略 l[-2:-1] # 负数下标,见python笔记2中介绍 l[-10:] # 取最后10个数 l[::2] # 所有数,每个两个取出 # 迭代 通过 for ... in ... 可迭代对象:list.tuple.字符串已经在pythonb笔记2中提到了. 判断是否可迭代 from collec…
'''''''''1.切片(1)谁可以进行切片操作?——列表,元组,字符串(2)切片有以下几种操作'''#[a:b]:取从下标为a的元素开始,到下标为b-1的元素结束L=['aa','bb','cc','dd','ee','ff','gg']l1=L[0:3]#取出来的是:下标为0,1,2的元素print(l1)#['aa', 'bb', 'cc'] #[:c]:表示从下标0开始取,取到c-1:[d:]:表示从d开始取,取到最后:如果d为负数,表示倒数第d个元素l2=L[:3]print(l2)…
列表L = ['Michael', 'Sarah', 'Tracy', 'Bob', 'Jack'] 取前3个元素 >>> L[0:3] ['Michael', 'Sarah', 'Tracy'] 也可以从索引1开始,取出2个元素出来: >>> L[1:3] ['Sarah', 'Tracy'] 类似的,既然Python支持L[-1]取倒数第一个元素,那么它同样支持倒数切片,试试: >>> L[-2:] ['Bob', 'Jack'] >>…
先举一个例子,取list或tuple中的某几个元素:     1.取 ['a','b','c','d','e','f'] 第1.2.5.6个元素:        >>> a = ['a','b','c','d','e','f']         >>> [ a[0], a[1], a[4], a[5] ]        ['a', 'b', 'e', 'f']                   2.取前x个元素可以用循环的方式将0~(x-1) 索引范围内的元素取出  …
将介绍的内容是: 控制消息确认.为发送消息指定选项.创建临时目的地.使用JMS本地事务.异步发送消息 五个方面. 1.控制消息确认 在JMS消息得到确认之前,并不认为它已经成功使用.要成功使用消息,通常分为三个阶段: (1).客户端接收消息. (2).客户端处理消息. (3).消息得到确认.确认可能由JMS提供者发出.或者由客户端发出.这取决于会话确认模式. 在本地事务性会话中,会话提交时消息就会得到确认.如果一个事务回滚,则已使用的所有消息都会重新发送. 在非事务性会话中.消息何时确认,以及如…
参考: 高级特性 切片 Note 1.掌握了Python的基础语法之后,就可以写出很多很有用的程序了,比如打印1-90的奇数: #!/usr/bin/env python3 L = [] n = 1 while n <= 90 : L.append(n) n = n + 2 print(L) sh-3.2# ./easyprogram.py [1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, 33, 35, 37, 39, 41…
Python 的高级特性 切片 对于指定索引范围取值的操作,Python提供了slice方法,类似于Excel中数据透视表的切片器. >>> L = ['Michael', 'Sarah', 'Tracy', 'Bob', 'Jack'] #声明一个List,取前三个值 >>> L[0:3] #表示从0开始,到3为止,但是不包括3,后面还可以再接:加上步长 ['Michael', 'Sarah', 'Tracy'] >>> S=list(range(1…
Python:笔记(4)——高级特性 切片 取一个list或tuple的部分元素是非常常见的操作.Python提供了切片操作符,来完成部分元素的选取 除了上例简单的下标范围取元素外,Python还支持一些其他的骚操作,如下: 迭代 如果给定一个list或tuple,我们可以通过for循环来遍历这个list或tuple,这种遍历我们称为迭代(Iteration). 列表生成式 列表生成式即List Comprehensions,是Python内置的非常简单却强大的可以用来创建list的生成式. 同…
##import sys ##sys.setrecursionlimit(1000) ###关键字参数(**关键字参数名) ###与可变参数不同的是,关键字参数可以在调用函数时,传入带有参数名的参数,这些参数会自动组装成一个 ###dict,参数名为key,参数值为value ##def person(name,age,**kv): ## print('name',name,'age',age,'关键字参数',kv) ##person('jian',18,tell=174,weight=71)#…
python高级特性 1行代码能实现的功能,决不写5行代码.请始终牢记,代码越少,开发效率越高. 切片 当我们要取一个list中的前n各元素时,如果前n个少的话,我们还可以一个一个的取,但是若前n个元素极其多的话,我们就要采取其他办法: L = []; n = 1; while n <= 99: L.append(n); n = n + 2; print(L); #取前三个元素 r = []; a = 3; for i in range(a): r.append(L[i]); print(r);…
导读:切片系列文章连续写了三篇,本文是对它们做的汇总.为什么要把序列文章合并呢?在此说明一下,本文绝不是简单地将它们做了合并,主要是修正了一些严重的错误(如自定义序列切片的部分),还对行文结构与章节衔接做了大量改动,如此一来,本文结构的完整性与内容的质量都得到了很好的保证. 众所周知,我们可以通过索引值(或称下标)来查找序列类型(如字符串.列表.元组…)中的单个元素,那么,如果要获取一个索引区间的元素该怎么办呢? 切片(slice)就是一种截取索引片段的技术,借助切片技术,我们可以十分灵活地处理…
1.python高级特性 1.1切片 list列表 L=['Mli','add','sal','saoo','Lkkl'] L[0:3]  #即为['Mli','add','sal']  从索引0开始,到索引3结束,但不包括3 L[:3]等价于 L[0:3] L[-2:]  #即为 ['saoo','Lkkl']   最后一个元素的索引为-1 L[-2:-1]  #即为['Lkkl'] L=range(100)  #则L[1:6:2]为 每个两个元素取一个数  所以输出为[2,4] tuple也…
廖雪峰老师的教程上学来的,地址:python高级特性 下面以几个具体示例演示用法: 一.切片 1.1 利用切片实现trim def trim(s): while s[:1] == " " or s[-1:] == " ": # 若第1个元素或最后1个元素为空格 if s[:1] == " ": s = s[1:] if s[-1:] == " ": s = s[:-1] return s 注:字符串可以看做一个list,列表切…
python的高级特性:切片,迭代,列表生成式,生成器,迭代器 #演示切片 k="abcdefghijklmnopqrstuvwxyz" #取前5个元素 k[0:5] k[:5] #后5个元素 k[-5:] #vwxyz #每隔一个取一个 k[::2] #acegikmoqsuwy #原样复制一个 k[:] #演示迭代 d={'a':1,'b':2,'c':3} for key in d: print(key) #结果输出abc, 即输出key, 而且要注意dict的迭代顺序不像lis…