#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解析的更多相关文章
-
Generator函数执行器-co函数库源码解析
一.co函数是什么 co 函数库是著名程序员 TJ Holowaychuk 于2013年6月发布的一个小工具,用于 Generator 函数的自动执行.短小精悍只有短短200余行,就可以免去手动编写G ...
-
Python:内置函数zip()
zip函数接受任意多个可迭代对象作为参数,将对象中对应的元素打包成一个tuple,然后返回一个可迭代的zip对象. 这个可迭代对象可以使用循环的方式列出其元素 若多个可迭代对象的长度不一致,则所返回的 ...
-
Python内置函数之enumerate() 函数
enumerate() 函数属于python的内置函数之一: python内置函数参考文档:python内置函数 转载自enumerate参考文档:python-enumerate() 函数 描述 e ...
-
python3 之 内置函数Zip
python3 内置函数zip 一.简介: 该函数用于将多个可迭代对象作为参数,依次将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的对象.二.实例1: name = ['张三','李四', ...
-
python 内置函数zip,map,三元,lambda表达式
#内置函数zip(),将多个可迭代对象(集合等)按照顺序进行组合成tuple元祖,放在zip 对象进行存储,: #当参数为空时候,返回空 #如果 zip() 函数压缩的两个列表长度不相等,那么 zip ...
-
javascript学习笔记--迭代函数
概要 这里的迭代函数指的是对数组对象的操作方法,js数组共有五个迭代函数:every.fifter.forEach.map.some. 1.every every方法,返回值为Boolean类型,tr ...
-
parse_str() 函数把查询字符串解析到变量中。
定义和用法 parse_str() 函数把查询字符串解析到变量中. 注释:如果未设置 array 参数,则由该函数设置的变量将覆盖已存在的同名变量. 注释:php.ini 文件中的 magic_quo ...
-
混沌分形之迭代函数系统(IFS)
IFS是分形的重要分支.它是分形图像处理中最富生命力而且最具有广阔应用前景的领域之一.这一工作最早可以追溯到Hutchinson于1981年对自相似集的研究.美国科学家M.F.Barnsley于198 ...
-
Mathematica 迭代函数
学习Mathematica迭代函数的几个画图例子: 1.三角形沿着某一点旋转 verticse = {{0, 0}, {1, 0}, {1/2, Sqrt[3]/2}}; tri = Line[ver ...
随机推荐
-
poj1988_Cube Stacking
Cube Stacking Time Limit: 2000MS Memory Limit: 30000K Total Submissions: 24130 Accepted: 8468 Ca ...
-
仿QQ的底部选项
效果图: item_add.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout ...
-
Leetcode 13 Roman to Integer 字符串处理+STL
题意:将罗马数字1到3999转化成自然数字,这里用了STL库map将罗马字符映射到自然数字. I,V,X,L,C,D,M -> 1,5,10,50,100,500,1000 m[s[i]]< ...
-
SQL基本查询_单表查询(实验二)
SQL基本查询_单表查询(实验二) 查询目标表结构及数据 emp empno ename job hiedate sal comn deptno 1007 马明 内勤 1992-6-12 4000 2 ...
-
python(列表2)
1.remove(删除指定值的元素) x = ['to','be','or','not','to','be'] x.remove('be') x ['to','or','not','to','be'] ...
-
django从零开始-视图
1.处理的登录请求 views文章中添加登录函数login_action def login_action(request): if request.method == 'POST': usernam ...
-
聊聊Java的final关键字
Java的final关键字在日常工作中经常会用到,比如定义常量的时候.如果是C++程序员出身的话,可能会类比C++语言中的define或者const关键字,但其实它们在语义上差距还是挺大的. 在Jav ...
-
万事不求人系列之-智能点餐算法实现-JavaScript实现智能点餐
作为一个成长中的架构师,编码能力是万不能停止的,这个算法是之前在上一家单位帮助同事们自助订餐写的,纯爱好自己码敲的,刚好这段时间重新整理代码,发现了它,分享给大家,请大家品评指教. 使用场景介绍:随着 ...
-
android 手机网络接入点名称及WAP、NET模式的区别
移动 电信 联通 APN cmwap cmnet ctwap ctnet 3gwap uniwap 3gnet uninet设置 APN(Access Point Name),即“接入点名称”,用来标 ...
-
Bringing up the Avnet MicroZed with Vivado
Bringing up the Avnet MicroZed with Vivado I recently received the Adam Taylor Edition of Avnet's Zy ...