python小例子之9 -- for语句的72变

原创
2010/01/04 00:00
阅读数 14
主题: for语句的72变
 环境: winvista(64)  + sp2 + python2.5
备注: 请注意,凡是在源代码文件中使用了中文字符,请最好保存为utf-8格式,以下所有的代码片段实际上前后关联的,最好保存为一个文件来使用
说明: python作为一种动态脚本语言,非常灵活,这篇文章对于常用for ... in ...语句做了个小结,如果你有新的有关for...in...语句的用法,欢迎与我交流,对于程序员来说,最好的方法就是代码。
代码1:
# 遍历字典  
var1 = {'key1':'abc', 'key2':23, 'key3':(23, 24)}  
for k, v in var1.items():  
    print k, v  
print '\r\n'

结果1:

key3 (23, 24)

key2 23

key1 abc

 代码2:

# 遍历列表  
var2 = [1, 2, 3]  
for v in var2:  
    print v

结果2:

1

2

3

代码3:

# 遍历元组      
var3 = (1,2,3,4)  
for v in var3:  
    print v

结果3:

1

2

3

4

代码4:

# 遍历字符串的每个字符  
var4 = 'string'  
for c in var4:  
    print c

结果4:

s

t

r

i

n

g

代码5:

# 对每个元素处理后生成新集合的写法  
var5 = [v+1 for v in var3]  
print var5

结果5:

[2, 3, 4, 5]

代码6:

# 把集合var2的每个元素的值依次叠加到集合var3的每个元素的值上  
var6 = [v1+v2 for v1 in var2 for v2 in var3]  
print var6  
var7=[]  
for v1 in var2:  
    for v2 in var3:  
        var7.append(v1+v2)  
print var7

结果6:

[2, 3, 4, 5, 3, 4, 5, 6, 4, 5, 6, 7]

[2, 3, 4, 5, 3, 4, 5, 6, 4, 5, 6, 7]

代码6这个片段中,后面的嵌套循环等价于第一行的写法 

代码7:

var8 = [(2,3,3), (5,6,6), (4,5,5)]  
for v1, v2, v3 in var8:  
    print v1, v2, v3

结果7: 

2 3 3

5 6 6

4 5 5 

代码8:

var9 = (1, -2, 4, 5, -1)  
var10 = [v for v in var9 if v > 0]  
print var10

结果8:

[1, 4, 5]

这种方式实际上可以对集合中的元素进行条件过滤

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部