gpt4 book ai didi

带有迭代器和可迭代的 Python zip 函数

转载 作者:行者123 更新时间:2023-12-03 20:06:11 25 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





what is meaning of [iter(list)]*2 in python?

(2 个回答)


去年关闭。




我无法理解 zip() 的工作原理当传入迭代器而不是可迭代时,python 中的函数。

看看这两个打印语句:

string = "ABCDEFGHI"

print(list(zip(*[iter(string)] * 3)))
# Output: [('A', 'B', 'C'), ('D', 'E', 'F'), ('G', 'H', 'I')]

print(list(zip(*[string] * 3)))
# Output: [('A', 'A', 'A'), ('B', 'B', 'B'), ('C', 'C', 'C'), ('D', 'D', 'D'), ('E', 'E', 'E'), ('F', 'F', 'F'), ('G', 'G', 'G'), ('H', 'H', 'H'), ('I', 'I', 'I')]

有人可以向我解释这两种情况下 zip() 的工作原理吗?

最佳答案

不同之处在于 [iter(string)] * 3 , zip创建单个迭代器的别名。对于 [string] * 3 , zip为每个参数创建唯一的迭代器。没有重复的较短输出是 zip耗尽单个别名迭代器。

what is meaning of [iter(list)]*2 in python?欲知更多详情 [iter(...)] * 2工作并导致潜在的意外结果。

查看规范答案 List of lists changes reflected across sublists unexpectedly如果[...] * 3混叠行为令人惊讶。

关于带有迭代器和可迭代的 Python zip 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62077696/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com