一、zip

        - zip函数呢,就是将多个可迭代对象,按对应的相同下表去做配对(配对但不是只能两个,其实是多个多个相同下表元素的组合),形成多个组合元祖。

        -那么问题来了--- 如果多个可迭代对象的长度不一致,怎么办?

        -答:以最小的长度为准(因为要保证配对的大小一致)

        -返回:一个迭代器  zip object

演示:

        这里为了按时多个组合,效果,就使用了三个列表来演示,

        而切把可迭代对象却传入zip函数时,我也打乱了顺序。

 这里打印结果:

 是一个迭代器,所以考虑转成list列表输出:

得到:

        

二、chain(itertools.chain)

        - itertools工具模块下的工具类

        - 作用就是将多个可迭代对象(如列表、元祖..)中的的元素,“无缝串联”成一个迭代器

示例:

运行结果:

三、*运算符

        -  *  是 Python 中的解包运算符,

        - 用法:

                        -解包可迭代对象

                        -定义可变参数函数。

用法1:解包可迭代对象(常用场景)

将可迭代对象(如列表、元组、集合)的元素“打散”,作为独立元素传入函数、初始化容器等。

上面的截图感觉效果不太好,下面的演示以插入代码和注释的形式说明

- 示例1:

python

 

# 1. 函数调用时解包参数

def add(a, b, c):

    return a + b + c

nums = [1, 2, 3]

print(add(*nums))  # 等价于 add(1, 2, 3),输出:6

-示例2:

 容器初始化时解包元素

list1 = [1, 2]

list2 = [3, 4]

combined = [*list1, *list2]  # 等价于 [1, 2, 3, 4]

print(combined)  # 输出:[1, 2, 3, 4]




 

用法2:函数定义时接收可变位置参数

在函数参数中用  *args ,表示接收任意数量的“位置参数”,并将这些参数打包成一个元组  args 。

- 示例:

python

 

def sum_all(*args):  # args 会接收所有位置参数,转为元组

    return sum(args)

print(sum_all(1, 2, 3, 4))  # 输出:10(args = (1,2,3,4))

注意:chain 和zip 返回的是迭代器

比较忙,慌里慌张写下一点,有错别字和不严谨的地方,多多包容

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐