详解Python3 对象组合zip()和回退方式*zip

yipeiwu_com5年前Python基础

zip即将多个可迭代对象组合为一个可迭代的对象,每次组合时都取出对应顺序的对象元素组合为元组,直到最少的对象中元素全部被组合,剩余的其他对象中未被组合的元素将被舍弃。

keys = ['one', 'two', 'three']
values = [1, 2, 3]
d = zip(keys, values)
print(list(d))

示例结果:

[('one', 1), ('two', 2), ('three', 3)]

可以看到我们由 zip 模拟了一个类似字典的一一对应的元组迭代对象,并将其转化为 list 类型查看,当然我们可以利用获取迭代对象生成真正的键值字典:

keys = ['one', 'two', 'three']
values = [1, 2, 3]
d = zip(keys, values)
D = {}
for key, value in d:
  print(key, value)
  D[key] = value
print(D)

示例结果:

one 1
two 2
three 3
{'one': 1, 'two': 2, 'three': 3}

我们可以利用for循环迭代赋值给字典完成对应的键值映射,在Python3中我们还可以用一句话就可以完成 D = dict(zip(keys,values)) .

*zip

当我们想回退为迭代器组合之前的状态时,我们可以利用 * “解压”现在“压缩”过的新的迭代对象

keys = ['one', 'two', 'three', 'four']
values = [1, 2, 3]
d = zip(keys, values)
older = zip(*d)
print(list(older))

“解压”结果:

[('one', 'two', 'three'), (1, 2, 3)]

PS:Python3:zip()和*zip()函数

描述

  • zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组
  • *zip() 和zip()配合使用,具体看下面示例

Showing code by screenshot ~~

1. zip()

2. *zip()

总结

以上所述是小编给大家介绍的Python3 对象组合zip()和回退方式*zip,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对【听图阁-专注于Python设计】网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

相关文章

python SVD压缩图像的实现代码

python SVD压缩图像的实现代码

前言 利用SVD是可以对图像进行压缩的,其核心原因在于,图像的像素之间具有高度的相关性。 代码 # -*- coding: utf-8 -*- ''' author@cclplu...

Python实现计算文件夹下.h和.cpp文件的总行数

平时自己写了很多代码,但从没好好计算总共写了多少行,面试时被问起来,就傻了。。。闲来无事,写个python程序来统计下 import os ###################...

Python 按字典dict的键排序,并取出相应的键值放于list中的实例

方法一: def dict_to_numpy_method1(dict): dict_sorted=sorted(dict.iteritems(), key=lambda d:d[...

使用Python的Flask框架构建大型Web应用程序的结构示例

虽然小型web应用程序用单个脚本可以很方便,但这种方法却不能很好地扩展。随着应用变得复杂,在单个大的源文件中处理会变得问题重重。 与大多数其他web框架不同,Flask对大型项目没有特定...

python logging日志模块的详解

python logging日志模块的详解 日志级别 日志一共分成5个等级,从低到高分别是:DEBUG INFO WARNING ERROR CRITICAL。 DEBUG:详细的信...