python3内建函数:zip()

一.官方语法

zip* iterables 

创建一个迭代器,该迭代器聚合了每一个可迭代对象的元素。

返回一个元组类型的迭代器,其中第i个元组包含来自每个参数序列或可迭代对象的第i个元素。

当最短的输入可迭代对象的元素被用完时,迭代器停止。

当参数只有一个可迭代对象时,返回一元组(元组中只包含一个元素)迭代器。

当没有参数时,返回空迭代器。

def zip(*iterables):
    # zip('ABCD', 'xy') --> Ax By
    sentinel = object()
    iterators = [iter(it) for it in iterables]
    while iterators:
        result = []
        for it in iterators:
            elem = next(it, sentinel)
            if elem is sentinel:
                return
            result.append(elem)
        yield tuple(result)

保证了可迭代对象从左到右的计算顺序。这使得使用zip(*[iter(s)]*n)函数将数据序列聚类为n个长度组成为可能。这将重复相同的迭代器 n 次,因此每个输出的元组都有对迭代器 n 次调用的结果。这可以将输入分割为 n 个长度的块。

当你不关心较长的可迭代对象的值无法匹配时,你可以在不等长的输入中使用zip()函数。如果这些值比较重要,你可以使用itertools.zip_longest()函数代替zip()函数。

二.描述

 接受任意数量的可迭代对象作为参数,将每个参数的第i个元素打包成第i个元组,然后返回一个zip类型的迭代器。

三.应用

zip()一般应用于数据的成对或者批量处理。

1.生成字典

# -*- coding:utf-8 -*-
a = ['a', 'b', 'c', 'd']
b = [1, 2, 3]

my_dict = dict(zip(a, b))
print(my_dict)

四.参考资料

1.python官方文档zip():https://docs.python.org/3/library/functions.html#zip

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值