Python -- 循环技巧(Looping Techniques)

1.当想同时得到索引和对应的值时,可以用enumerate()函数

for i, v in enumerate([‘tic‘, ‘tac‘, ‘toe‘]):
    print i, v
0 tic
1 tac
2 toe

2.要同时循环两个或多个序列,可以与zip()函数配对。

questions = [‘name‘, ‘quest‘, ‘favorite color‘]
answers = [‘lancelot‘, ‘the holy grail‘, ‘blue‘]
for q, a in zip(questions, answers):
    print ‘what is your {0}? It is {1}.‘.format(q, a)

------------------------------------------------------
what is your name? It is lancelot.
what is your quest? It is the holy grail.
what is your favorite color? It is blue.

3.要反向循环序列,首先是正向的指定序列,然后调用revers()函数。

for i in reversed(xrange(1, 10, 2)):
    print i

--------------------------------------
9
7
5
3
1

4. 要以排序顺序循环序列,请使用sorted()函数,该函数返回一个新的排序序列,而不改原来的序列

basket = [‘apple‘, ‘orange‘, ‘apple‘, ‘pear‘, ‘orange‘, ‘banana‘]
for f in sorted(set(basket)):
    print f
-------------------------------------------------------------------
apple
banana
orange
pear

5.当循环使用字典时,可以使用iteritems()方法同时检索关键字和对应的值。

knights = {‘gallahad‘: ‘the pure‘, ‘robin‘: ‘the brave‘}
for k, v in knights.iteritems():
    print k, v
---------------------------------------
gallahad the pure
robin the brave

6.在循环序列时有时候会很有挑战性; 可以创建新列表这样通常更简单和安全。

mport math
raw_data = [56.2, float(‘NaN‘), 51.7, 55.3, 52.5, float(‘NaN‘), 47.8]
filtered_data = []
for value in raw_data:
    if not math.isnan(value):
        filtered_data.append(value)

print filtered_data
-----------------------------------------------------
[56.2, 51.7, 55.3, 52.5, 47.8]

7.不同类型之间序列的比较

序列对象可以与具有相同序列类型的其他对象进行比较。 比较使用词典排序:首先比较前两个项目,如果它们不同,则决定比较结果; 如果它们相等,则将下两个项目进行比较,依此类推,直到任一序列耗尽。 如果要比较的两个项目本身是相同类型的序列,则词典比较是递归地进行的。 如果两个序列的所有项目比较相等,则这些序列被认为是相等的。 如果一个序列是另一个序列的初始子序列,则较短的序列是较小(较小的)序列。 字符串的字典排序使用单个字符的ASCII排序。 相同类型的序列之间的比较的一些例子:

(1, 2, 3)              < (1, 2, 4)
[1, 2, 3]              < [1, 2, 4]
‘ABC‘ < ‘C‘ < ‘Pascal‘ < ‘Python‘
(1, 2, 3, 4)           < (1, 2, 4)
(1, 2)                 < (1, 2, -1)
(1, 2, 3)             == (1.0, 2.0, 3.0)
(1, 2, (‘aa‘, ‘ab‘))   < (1, 2, (‘abc‘, ‘a‘), 4)

请注意,比较不同类型的对象是合法的。 结果是确定性但是随意的:类型按照他们的名字排序。 因此,列表始终小于字符串,字符串始终小于元组等。混合数字类型根据其数值进行比较,因此0等于0.0等。

时间: 2024-08-09 02:21:18

Python -- 循环技巧(Looping Techniques)的相关文章

python 循环技巧

摘自:超级无敌python教程 dict的循环: >>> knights = {'gallahad': 'the pure', 'robin': 'the brave'} >>> for k, v in knights.items():         ...          print k, v         ... gallahad the purerobin the brave list的循环: >>> for i, v in enumera

python代码优化技巧

转自:http://www.douban.com/group/topic/31478102/ 这个资料库还有些不错的好文章: http://www.ibm.com/developerworks/cn/ 来看这篇<Python 代码性能优化技巧>http://www.ibm.com/developerworks/cn/linux/l-cn-python-optim/index.html 原文标题是代码性能优化,关键是性能优化,如果纯是代码优化则跟代码重构无异. 代码性能优化的本质:保证代码正确行

python基础:python循环、三元运算、字典、文件操作

目录: python循环 三元运算 字符串 字典 文件操作基础 一.python编程 在面向过程式编程语言的执行流程中包含: 顺序执行 选择执行 循环执行 if是条件判断语句:if的执行流程属于选择执行:if语句有三种格式,如下: 在多分支的if表达式中,即使多个条件同时为真,也只会执行一个,首先测试为真: 选择执行 单分支的if语句 if CONDITION: 条件为真分支 双分支的if语句 if CONDITION 条件为真分支 else 条件不满足时分支 多分支的if语句 if CONDI

Python循环语句

Python语言中的循环结构包含两种语句,分别是while语句和for语句. 1. while语句 while(表达式): -- else: -- 执行过程:当循环表达式为True时,依次执行while中的语句.直到循环表达式的值为False时,才执行else语句或退出循环.其中else子句可以省略,表达式两端的等号也可以省略. 2. for语句 for循环用于遍历一个集合,依次访问集合中的每个项目.格式如下: for 变量 in 集合: -- else: -- 执行过程:每次循环从集合中取出一

Python循环常见的语法错误有哪些?

本文和大家分享的主要是python循环下最易错的一些语法,一起来看看吧,希望对大家学习python有所帮助. 循环语句下break和continue的区别和作用 break和continue都是用来控制循环结构的,主要是停止循环. · break break用于完全结束一个循环,跳出循环体执行循环后面的语句. for x in range(10): if x == 5: break print(x)print('for循环终止') break循环不是等循环条件为False才终止,打印结果为: 0

jQuery源码分析-jQuery中的循环技巧

Js代码   作者:nuysoft/JS攻城师/高云 QQ:47214707 EMail:[email protected] 声明:本文为原创文章,如需转载,请注明来源并保留原文链接. 前记:本文收集了jQuery中出现的各种遍历技巧和场景 Js代码   // 简单的for-in(事件) for ( type in events ) { } Js代码   // 缓存length属性,避免每次都去查找length属性,稍微提升遍历速度 // 但是如果遍历HTMLCollection时,性能提升非常

简单Python入门技巧

简单Python入门技巧 Python具有丰富和强大的库.它常被昵称为胶水语言,能够把用其他语言制作的各种模块(尤其是C/C++)很轻松地联结在一起.常见的一种应用情形是,使用Python快速生成程序的原型(有时甚至是程序的最终界面),然后对其中[3]  有特别要求的部分,用更合适的语言改写,比如3D游戏中的图形渲染模块,性能要求特别高,就可以用C/C++重写,而后封装为Python可以调用的扩展类库.需要注意的是在您使用扩展类库时可能需要考虑平台问题,某些可能不提供跨平台的实现. Python

python 小技巧

英文出处:sahandsaba.欢迎加入翻译组. 从我开始学习python的时候,我就开始自己总结一个python小技巧的集合.后来当我什么时候在Stack Overflow或者在某个开源软件里看到一段很酷代码的时候,我就很惊讶:原来还能这么做!,当时我会努力的自己尝试一下这段代码,直到我懂了它的整体思路以后,我就把这段代码加到我的集合里.这篇博客其实就是这个集合整理后一部分的公开亮相.如果你已经是个python大牛,那么基本上你应该知道这里面的大多数用法了,但我想你应该也能发现一些你不知道的新

python循环修改列表注意事项

python循环列表且需要修改列表元素时,需注意不能边循环列表,边修改列表,否则会导致莫名奇妙的结果错误. 以简单的冒泡排序的一次排序为例 将列表[12, 3, 15, 7, 45, 33, 9, 76, 40, 56]使用冒泡算法按照从小到大排序.(仅写一次排序过程,即找到最大的放到最后) 如果写为: src_list = [12, 3, 15, 7, 45, 33, 9, 76, 40, 56] for (index, value) in enumerate(src_list[:-1]):