如何使用 Python 2.7 使 zip_longest 在 itertools 中可用

Posted

技术标签:

【中文标题】如何使用 Python 2.7 使 zip_longest 在 itertools 中可用【英文标题】:How to make zip_longest available in itertools using Python 2.7 【发布时间】:2017-06-10 21:11:10 【问题描述】:

尝试在 Windows 10 上运行的 Python Jupyter 2.7 nb 上导入此函数时,我收到此错误:

我相信我过去没有遇到过问题,因为我使用的是 Python 3。所以我想知道是否只是它在 Python 2 中不可用,或者是否有办法让它工作。

【问题讨论】:

【参考方案1】:

对于 Python 3,方法是 zip_longest:

from itertools import zip_longest

对于 Python 2,方法是 izip_longest:

from itertools import izip_longest

【讨论】:

目前的积分 - 将在允许时接受(6 分钟)。泰 很高兴能帮上忙! 不要忘记,在 Python 3 中,map 和 zip 函数返回迭代器而不是列表,因此如果您需要一个列表,则需要 list() 它们。我经常被这个烧伤。我恨它。但是懒惰的评价才是王道。【参考方案2】:

如果你不知道哪个版本的 python 运行脚本,你可以使用这个技巧:

try:
    from itertools import zip_longest
except ImportError:
    from itertools import izip_longest as zip_longest

# now this works in both python 2 and 3
print(list(zip_longest([1,2,3],[4,5])))

【讨论】:

以上是关于如何使用 Python 2.7 使 zip_longest 在 itertools 中可用的主要内容,如果未能解决你的问题,请参考以下文章

Python:如何在 kivy 中使标签加粗

在 linux SUSE 或 RedHat 上,如何加载 Python 2.7

python中如何使输出不换行

Windows XP、Python 2.7 和 Pygame

Python 2.7 之前的 dict 理解的替代方案

如何从 Python 3.2 降级到 2.7?