gpt4 book ai didi

* 运算符和 zip() 函数的 Python 限制

转载 作者:太空狗 更新时间:2023-10-30 00:46:44 25 4
gpt4 key购买 nike

我有一段与此类似的 Python 代码:

for lines in zip(*files):
# do something

其中 files 是一个文件列表,每个 file 是一个 lines 列表,每个 linestring 的列表。因此,上面的代码应该首先解压缩列表 files,然后应用函数 zip(),返回一个包含每个文件第一行的元组。问题是这工作得很好,如果文件列表的长度是 30(例如)。但是,如果长度更大,例如 120,则循环内的代码甚至不会执行一次。

结论是 zip() 函数返回一个空列表,或者 * 运算符没有完成它的工作。无论哪种方式,我的问题是 zip() 可以处理的参数是否有限制(或者 * 可以解压)或者它是否受到内存量的某种限制我的电脑有,因为我无法在 Python 的文档中找到任何内容。

PS:我正在运行 Python 2.4

最佳答案

如果其中一个文件为空,zip 将返回一个空列表。从 Python 2.6 开始,您可以使用 itertools.izip_longest来处理那个。在旧版本上,您可以使用 map(None, *files),由@Sven Marnach 提供。

关于* 运算符和 zip() 函数的 Python 限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5179663/

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