#encoding:utf-8
"""
并行迭代:
zip
enumerate
获取元素及下标
list解析
iter
""" #zip
# 两个长度相同的列表,求对应元素的和 # 原始做法:
# 当两个元素长度不一致时,这个程序就会出问题,zip可以避免这个问题
def zip_test():
a,b = [1,2,3,4,5],[9,8,7,6,5]
c= []
# for i in range(len(a)):
# c.append(a[i] + b[i])
# return c # 改进
length = len(a) if len(a)<len(b) else len(b)
for i in range(length):
c.append(a[i] + b[i])
return c #zip实现
def zip_test2():
a,b = [1,2,3,4,5],[9,8,7,6,5]
c = []
lst = zip(a,b)
print lst
for x,y in lst:
c.append(x+y)
return c # zip优化
def zip_test3():
a,b = [1,2,3,4,5],[9,8,7,6,5]
return [x+y for x,y in zip(a,b)] #list长度不一,zip获取
def zip_test4():
a= [1,2,3]
b=[11,12,13,14,15]
return zip(a,b) # 结果:[(1, 11), (2, 12), (3, 13)] # 字典执行zip,key视序列,将序列对应的元素一次组成元组,做一个list的元素
def zip_test5():
s = {'name':'bob'}
t = {'language':'python'}
return zip(s,t) #结果:[('name', 'language')] # 颠倒字典的key value的例子
# 方法1:for循环
def zip_test6():
myinfor = {"name":"bob","site":"www.google.com","language":"python"}
new_infor = {}
for k,v in myinfor.items():
new_infor[v] = k
return new_infor # 方法2:zip
def zip_test7():
myinfor = {"name":"bob","site":"www.google.com","language":"python"}
return dict(zip(myinfor.values(),myinfor.keys())) # zip的参数 *iterables
def zip_test8():
list1 = [2,4,6,8]
list2 = [11,13,15,17]
result = zip(list1,list2)
print result #[(2, 11), (4, 13), (6, 15), (8, 17)]
return zip(*result) #[(2, 4, 6, 8), (11, 13, 15, 17)] # enumerate
def enumerate_test():
week = ['monday','sunday','friday']
for i in range(len(week)):
print week[i] + " is " +str(i) # enumerate的方式实现
def enumerate_test2():
week = ['monday','sunday','friday']
for i ,m in enumerate(week):
print week[i] + " is " +str(i) if __name__ =="__main__":
print "-------zip-------"
print zip_test()
print zip_test2()
print zip_test3()
print zip_test4()
print zip_test5()
print zip_test6()
print zip_test7()
print zip_test8()
print "------enumerate----"
enumerate_test()
enumerate_test2()

结果:

-------zip-------
[, , , , ]
[(, ), (, ), (, ), (, ), (, )]
[, , , , ]
[, , , , ]
[(, ), (, ), (, )]
[('name', 'language')]
{'python': 'language', 'bob': 'name', 'www.google.com': 'site'}
{'python': 'language', 'bob': 'name', 'www.google.com': 'site'}
[(, ), (, ), (, ), (, )]
[(, , , ), (, , , )]
------enumerate----
monday is
sunday is
friday is
monday is
sunday is
friday is

迭代函数:zip、enumerate,list解析的更多相关文章

  1. Generator函数执行器-co函数库源码解析

    一.co函数是什么 co 函数库是著名程序员 TJ Holowaychuk 于2013年6月发布的一个小工具,用于 Generator 函数的自动执行.短小精悍只有短短200余行,就可以免去手动编写G ...

  2. Python:内置函数zip()

    zip函数接受任意多个可迭代对象作为参数,将对象中对应的元素打包成一个tuple,然后返回一个可迭代的zip对象. 这个可迭代对象可以使用循环的方式列出其元素 若多个可迭代对象的长度不一致,则所返回的 ...

  3. Python内置函数之enumerate() 函数

    enumerate() 函数属于python的内置函数之一: python内置函数参考文档:python内置函数 转载自enumerate参考文档:python-enumerate() 函数 描述 e ...

  4. python3 之 内置函数Zip

    python3 内置函数zip 一.简介: 该函数用于将多个可迭代对象作为参数,依次将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的对象.二.实例1: name = ['张三','李四', ...

  5. python 内置函数zip,map,三元,lambda表达式

    #内置函数zip(),将多个可迭代对象(集合等)按照顺序进行组合成tuple元祖,放在zip 对象进行存储,: #当参数为空时候,返回空 #如果 zip() 函数压缩的两个列表长度不相等,那么 zip ...

  6. javascript学习笔记--迭代函数

    概要 这里的迭代函数指的是对数组对象的操作方法,js数组共有五个迭代函数:every.fifter.forEach.map.some. 1.every every方法,返回值为Boolean类型,tr ...

  7. parse_str() 函数把查询字符串解析到变量中。

    定义和用法 parse_str() 函数把查询字符串解析到变量中. 注释:如果未设置 array 参数,则由该函数设置的变量将覆盖已存在的同名变量. 注释:php.ini 文件中的 magic_quo ...

  8. 混沌分形之迭代函数系统(IFS)

    IFS是分形的重要分支.它是分形图像处理中最富生命力而且最具有广阔应用前景的领域之一.这一工作最早可以追溯到Hutchinson于1981年对自相似集的研究.美国科学家M.F.Barnsley于198 ...

  9. Mathematica 迭代函数

    学习Mathematica迭代函数的几个画图例子: 1.三角形沿着某一点旋转 verticse = {{0, 0}, {1, 0}, {1/2, Sqrt[3]/2}}; tri = Line[ver ...

随机推荐

  1. CentOS 6.5下PXE+Kickstart无人值守安装操作系统centos7.3

    CentOS 6.5下PXE+Kickstart无人值守安装操作系统centos7.3 一.简介 1.1 什么是PXE PXE(Pre-boot Execution Environment,预启动执行 ...

  2. PYTHON-模块定义 搜索路径

    模块是什么: ***** 模块 是一系列功能的集合体 一个py文件就是一个模块 一个函数就是一个功能 例如 A.py 文件名A.py 模块名 A 模块有哪些来源 内置 第三方 自定义 模块有四种通用的 ...

  3. javascript 练习题目答案1

    以下是这个教程的答案 https://www.liaoxuefeng.com/wiki/001434446689867b27157e896e74d51a89c25cc8b43bdb3000/00143 ...

  4. 上传本地文件到github仓库基本操作

    上传文件到github时老师忘记指令,或者总是出一些错,每次都要百度浪费时间,因此将常用操作指令归纳卸载这里,以后再也不要担心百度找帖子了... 第一步:新建仓库 新建仓库步骤省略,最后我们得到一个仓 ...

  5. splay好板子

    找到一份比较好的板子,链接https://blog.csdn.net/crazy_ac/article/details/8034190 #include<cstdio> #include& ...

  6. hdu4052矩形面积并

    建模需要注意下细节,,这是做扫描线的惯例,就是最好把模型建立在笛卡尔坐标系上 剩下的看链接和注释https://blog.csdn.net/shiqi_614/article/details/7983 ...

  7. Android Studio之导出JavaDoc出现编码GBK的不可映射字符

    使用Android Studio导出JavaDoc时,如果在注释中添加了中文,生成时的时候会出现错误: 编码GBK的不可映射字符. 解决的办法是在Other command line argument ...

  8. \x 开头编码的数据解码成中文

    在python里,直接decode('utf-8')即可 >>> "\xE5\x85\x84\xE5\xBC\x9F\xE9\x9A\xBE\xE5\xBD\x93 \xE ...

  9. 089实战 Nginx的安装

    1.上传 使用淘宝改进过的nginx 2.解压  tar -zxvf tengine-2.0.2.tar.gz -C ../modules/ 3.进入tegine主目录 4.安装依赖  sudo yu ...

  10. python tkinter-菜单栏

      菜单栏 Menu f = tkinter.Menu(root) root['menu']=f f.add_command(label='菜单')# f.add_command(label='关于' ...