python学习笔记(15)循环设计
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python学习笔记(15)循环设计相关的知识,希望对你有一定的参考价值。
原链:http://www.cnblogs.com/vamei/archive/2012/07/09/2582435.html
注意:zip()在python2 3里面不一致
#第15讲 循环设计 #循环在前面是有学习的,简单的循环 for i in range(10): print (i**2) #上面就是很简单的循环 #range() s = ‘abcdefghijk‘ for i in range(0, len(s), 2):#从下标0开始,到len()函数返回的元素数,然后步长 step 为2 print (s[i]) #输出结果:a c e g i k #步长 step 这个概念 是之前学习list里面下标的时候引入的一个概念 #range 函数,分别定义上限 下限 每次循环的步长 #list 里面是用 :来隔开的 #注意 range 产生的数是没有上限的 for i in range(0, 5, 2): print (i) #输出: 0,2,4 #enumerate() for (index, char) in enumerate(s): print (index, char) ‘‘‘ 输出结果: 0 a 1 b 2 c 3 d 4 e 5 f 6 g 7 h 8 i 9 j 10 k ‘‘‘ #输出结果来看,enumerate()函数,返回的是一个 tuple ,然后两个元素赋予 index char #把下标 和 元素 都打印出来 char 字符 C语言用的更多 #zip() m1 = [1, 2, 3] m2 = [9, 8, 7] m3 = [‘a‘, ‘b‘, ‘c‘] for (a,b,c) in zip(m1,m2,m3): print ((a,b,c)) #输出结果:(1, 9, ‘a‘) #(2, 8, ‘b‘) #(3, 7, ‘c‘) #zip()函数,就是从多个list,依次取出一个元素,每次取出的(来自不同list)元素合并成一个tuple,并返回 #zip()函数,聚合列表的功能 # for 后面3个变量,一定是list里面足够的,list里面有4个也是可以的,m1= [1,2,3,4] #输出是不变的,但是for 后面变4个变量,就会报错 #ValueError: not enough values to unpack (expected 4, got 3) #只获取到3个变量,期望是4个变量 m1 = [1,2,3] m2 = [9,8,7] zipped = zip(m1,m2)#zip() 从list m1 m2各抽取一个元素,组成tuple,赋给zipped print (*zipped) #输出:(1, 9) (2, 8) (3, 7) list(zip(m1,m2)) #输出list:[(1, 9), (2, 8), (3, 7)] #这是聚合 #分解列表 #zip函数在python2 3里面表现不一致 #python2 实现如图
然后继续python3的zip()
#python3 x = (1,2,3) y = (4,5,6) z = (7,8,9) n = list(zip(x,y,z)) print (n) #[(1, 4, 7), (2, 5, 8), (3, 6, 9)] m = list(zip(*n)) print (m) #[(1, 2, 3), (4, 5, 6), (7, 8, 9)] #都通过list 来实现 #按照官方文档 x = (1,2,3) y = (4,5,6) zipped = zip(x,y) list(zipped) #[(1, 4), (2, 5), (3, 6)] #注:自己尝试 print (zipped) <zip object at 0x0000023A74ED6748> print (list(zipped)) [(1, 4), (2, 5), (3, 6)] #继续文档 x2, y2 = zip(*zip(x, y))#这里zip(x,y) 不能用zipped,虽然我们前面赋值了,python会认为没有足够的值去解 x2 #(1, 2, 3) y2 #(4, 5, 6)
以上是关于python学习笔记(15)循环设计的主要内容,如果未能解决你的问题,请参考以下文章