zip()函数将可迭代的对象作为参数,将对象对应的元素打包成一个个元祖,然后返回由这些元祖组成的对象,我们可以使用list()转换成列表

如果各个迭代器的元素个数不一致,则返回列表长度和最小的对象相同,用*好操作符,可以将元祖解压为列表

1.两个或者多个list

a=[1,2,3]

b=[4,5,6]

c=[7,8,9,10]

#两个list去zip()

zip(a,b)

#三个list去zip(),返回的对象的长度和最小的迭代器一致

zip(a,b,c)

#用list()查看zip后的数据

list(zip(a,b)) #[(1, 4), (2, 5), (3, 6)]

list(zip(a,b,c)) #[(1, 4, 7), (2, 5, 8), (3, 6, 9)]

#使用zip(*zip())解压

a1,b1=zip(*zip(a,b))

#两个list迭代输出

for i,j in zip(a,b):

print(i,j)

输出:

1 4

2 5

3 6

2.如有两个list,一个是一层,一个是嵌套,要组成一个dict

#将zip对象转换成字典看看

a=[1,2,3]

d=[['a','b','c'],['aa','bb','cc'],['aaa','bbb','ccc']]

dict(zip(a,d)) #{1: ['a', 'b', 'c'], 2: ['aa', 'bb', 'cc'], 3: ['aaa', 'bbb', 'ccc']}

#如果一个是key值,一个内层list就是一行value

[dict(zip(a,value)) for value in d] #[{1: 'a', 2: 'b', 3: 'c'},

{1: 'aa', 2: 'bb', 3: 'cc'},

{1: 'aaa', 2: 'bbb', 3: 'ccc'}]

#或者是

l=[]

for value in d:

dict={}

for i in range(len(value)):

dict[a[i]]=value[i]

l.append(dict)

3.同时遍历两个dict

如果长度相同的dict直接用zip函数即可同时for

如果长度不同,可以先把这两个dict整合进一个list再for

dict_1=dict(zip(a,b)) #{1: 4, 2: 5, 3: 6}

dict_2=dict(zip(a,d)) # {1: ['a', 'b', 'c'], 2: ['aa', 'bb', 'cc'], 3: ['aaa', 'bbb', 'ccc']}

#key的遍历

for i,j in zip(dict_1,dict_2):

print(i,j)

输出:

1 1

2 2

3 3

#values的遍历

for i ,j in zip(dict_1.values(),dict_2.values()):

print(i,j)

输出:

4 ['a', 'b', 'c']

5 ['aa', 'bb', 'cc']

6 ['aaa', 'bbb', 'ccc']

#同时遍历,需要2个dict的value都是多层的

dict_4=dict(zip(b,d)) #{4: ['a', 'b', 'c'], 5: ['aa', 'bb', 'cc'], 6: ['aaa', 'bbb', 'ccc']}

for i,j in zip(dict_4,dict_2):

for k in dict_4[i]:

print(i,k)

for m in dict_2[j]:

print(j,m)

输出:

4 a

4 b

4 c

1 a

1 b

1 c

5 aa

5 bb

5 cc

2 aa

2 bb

2 cc

6 aaa

6 bbb

6 ccc

3 aaa

3 bbb

3 ccc

以上就是python zip()的使用示例的详细内容,更多关于python zip()的资料请关注脚本之家其它相关文章!

python zip函数dict_python zip()函数的使用示例相关推荐

  1. Effective Python 小笔记之 zip 函数

    环境:Python 3.5.1 CentOS 7 zip函数可以同时遍历两个迭代器. 在编写Python代码时,通常要面对很多列表,而这些列表中的对象,可能是相互关联的.如下例: names = [' ...

  2. python中的zip()函数和map()函数

    一.zip()函数 1.语法: zip(iterable, ...) 参数说明: iterable,--- 一个或多个迭代器; 在python3中: zip() 函数用于将可迭代的对象作为参数,将对象 ...

  3. python enumerate函数_关于python中enumerate和zip函数的用法及举例

    关于python中enumerate和zip函数的用法及举例 关于enumerate函数: enumerate函数可以同时返回列表或元组等可迭代对象的下标和内容,但实际上,enumerate函数实际返 ...

  4. python的zip方法_python zip()函数使用方法解析

    这篇文章主要介绍了python zip()函数使用方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 参数iterable为可迭代的对象,并且可 ...

  5. python内置函数返回序列中最大元素_Python之路(第八篇)Python内置函数、zip()、max()、min()...

    一.python内置函数 abs() 求绝对值 例子 print(abs(-2)) all() 把序列中每一个元素做布尔运算,如果全部都是true,就返回true, 但是如果是空字符串.空列表也返回t ...

  6. python zip函数_Python zip()函数

    python zip函数 Good day learners, hope that you are doing well. We discussed about Python Modulo in ou ...

  7. python字典zip函数_Python zip函数及用法

    zip() 函数是 Python 内嵌函数之一,它能够将好几个序列(列表.元组.字典.结合.字符串数组及其 range() 区段组成的列表)"缩小"成一个 zip 目标.说白了&q ...

  8. Python中zip()、zip(*zipped)、*zip()函数总结

    前言:本博文主要讲解Python中zip().zip(*zipped).*zip()的用法及区别. 文章目录 一.zip()函数 1.1.语法 1.2.返回值 1.3.实例 二.zip(*zipped ...

  9. Python中lambda、zip、map、reduce函数的使用

    一.lambda表达式 lambda表达式,通常是在需要一个函数,但是又不想费神去命名一个函数的场合下使用,也就是指匿名函数.lambda所表示的匿名函数的内容应该是很简单的,如果复杂的话,干脆就重新 ...

最新文章

  1. java h5获取ip,websocket中获取客户端通信的真实IP
  2. Weblogic10 + EJB3入门教程(1):编写第一个无状态会话Bean(Stateless Session Bean)...
  3. 生成数据库测试数据的方法
  4. #035 大数阶乘 PTA题目6-10 阶乘计算升级版 (20 分)
  5. 《编译原理》实验预习报告——基于YACC的TINY语法分析器的构建
  6. HDU5985 Lucky Conins 概率题
  7. 由于html元素加载导致的问题
  8. 用纯css3和html实现一些复杂的泡沫对话框
  9. run gender find mistake
  10. bzoj千题计划227:bzoj1486: [HNOI2009]最小圈
  11. Android播放外部音乐文件
  12. 按键精灵定义全局变量_按键精灵全局环境变量
  13. CSS 滚动条,浮动问题,图片bug
  14. 【Kubernetes 企业项目实战】05、基于云原生分布式存储 Ceph 实现 K8s 数据持久化(下)
  15. [转载](asp.net大型项目实践)
  16. Python图像处理(13):brisk特征检测
  17. fatal error: zlib.h: No such file or directory
  18. android调用系统发送短信
  19. Win10 应用商店打不开,错误代码0x80131500——亲测可用
  20. Mac 下安装 go

热门文章

  1. OpenCV学习日记1
  2. WAIC 2021 | 好未来副总裁吴中勤:多模态机器学习与自动生成技术
  3. 【Android双屏异显】如何真正的实现Android双屏异显
  4. linux开机dracut界面_安装CentOS7出现dracut:/#……time解决办法
  5. java 下拉多级联动 头像裁剪 调用摄像头 SpringMVC mybatis SSM
  6. 杭州最长隧道今日通车 高德地图实现秒通上线
  7. WIN7笔记本电脑的语言栏不显示?
  8. Java中的Serializable接口之“序列化”与“反序列化”
  9. 【无标题】vue使用@mouseenter和@mouseout造成闪烁事件
  10. Raft论文读书笔记