Jupyter中Python iter()函数行为的差异

时间:2018-06-16 17:51:31

标签: python-3.x jupyter-notebook

我定义了一个简单的函数来返回iterable中的第一个项,或者错误:

def first(iterable):
    iterator = iter(iterable)
    try:
        return next(iterator)
    except StopIteration:
        raise ValueError("iterable is empty")

在shell中,此功能可以满足您的期望:

>>> first({"1st", "2nd", "3rd"})
'1st'
>>> first({"1st", "2nd", "3rd"})
'1st'
>>> first(["1st", "2nd", "3rd"])
'1st'

但是,在Jupyter Notebook中,它返回set中的第二个元素,但是list中的第一个元素。

first({"1st", "2nd", "3rd"})
'2nd'

first(["1st", "2nd", "3rd"])
'1st'

first(set(["1st", "2nd", "3rd"]))
'2nd'

我在两种情况下都在Anaconda中使用Python 3.6.5。

我有什么明显的东西吗?

0 个答案:

没有答案