我有一个类似于这个的Python代码:
for lines in zip(*files):
# do something
Run Code Online (Sandbox Code Playgroud)
这里files是文件的列表,每个file列表列出了lines每个line列表列出string秒.因此,上面的代码应首先解压缩列表files,然后应用该函数zip(),返回每个文件的第一行的元组.问题是如果文件列表的长度是30(例如),这可以正常工作.但是,如果长度较大,例如120,则循环内的代码甚至不会执行一次.
结论是zip()函数返回一个空列表或者*操作符没有完成它的工作.无论哪种方式,我的问题是,如果zip()可以处理(或*可以解包)的参数存在限制,或者它在某种程度上受到我的计算机具有的内存量的限制,因为我无法在Python的文档中找到任何内容.
PS:我正在运行Python 2.4
如果其中一个文件为空,zip则返回一个空列表.从Python 2.6开始,您可以使用它itertools.izip_longest来处理它.在旧版本中,您可以使用map(None, *files)@Sven Marnach提供的.
| 归档时间: |
|
| 查看次数: |
1913 次 |
| 最近记录: |