Python:当我的模块返回 "Ellipsis"时,这意味着什么?

标签 python debugging ellipsis

好的,我这里有这段代码:

def andSearch(inverseIndex, query):
    pepp = set()

    for y in [inverseIndex[x] for x in query]:
        if pepp == set():
            pepp.update(y)
        else:
            pepp & y 

    return pepp

我正在尝试输入字典,例如:

L =  {'Cats':{1},'Dogs':{2},'Cat':{0,4},'Dog':{0,4},'Pigs':{3},'Animal':{4}}

作为输出,我希望有一个集合,如果值连接并包含所有输入查询,则显示字典值,如下所示:

query =  [ 'Dog', 'Cat','Animal']     ---->    {4}
query =  [ 'Dog', 'Cat']      --->  {0,4}
query = ['Dog', 'Dogs']   ----  {}      (or set())
query = []  ----->  {}

但问题是当我尝试运行该模块时,我得到了这个奇怪的输出:

>>> andSearch(L,Query)
Ellipsis

什么可能导致这种情况?无论输入什么都是一样的,并且不会给我错误或什么也没有,你们聪明的小伙子和女孩们能帮我吗?

最佳答案

使用以下稍微更新和优化的代码,我无法在 Python 2 或 3 中重现您的问题:

def andSearch(inverseIndex, query):
    pepp = set()

    for y in (inverseIndex[x] for x in query):
        if not pepp:
            pepp.update(y)
        else:
            pepp &= y

    return pepp

L =  {'Cats':{1}, 'Dogs':{2}, 'Cat':{0,4}, 'Dog':{0,4}, 'Pigs':{3}, 'Animal':{4}}

for query in [['Dog', 'Cat', 'Animal'],
              ['Dog', 'Cat'],
              ['Dog', 'Dogs'],
              [],]:

    print('query = {} ----> {}'.format(query, andSearch(L, query)))

Python 2.7.5 的输出:

query = ['Dog', 'Cat', 'Animal'] ----> set([4])
query = ['Dog', 'Cat'] ----> set([0, 4])
query = ['Dog', 'Dogs'] ----> set([])
query = [] ----> set([])

Python 3.3.2 的输出:

query = ['Dog', 'Cat', 'Animal'] ----> {4}
query = ['Dog', 'Cat'] ----> {0, 4}
query = ['Dog', 'Dogs'] ----> set()
query = [] ----> set()

...所以我只能假设您的系统配置错误或困惑。
(顺便说一句,我没有安装“numpy”或“scipy”。)

关于Python:当我的模块返回 "Ellipsis"时,这意味着什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17494932/

相关文章:

java - IntelliJ IDEA 调试器跟随子进程

debugging - tvOS 中是否有用于 Focus Engine 调试的隐藏工具?

css - 空白 : nowrap; and flexbox did not work in chrome

algorithm - 缩短句子的算法问题

python - 可移植Python/IPython

Python字典和集合内存分配

ios - MetricKit MX诊断符号

html - 如何在省略号点的末尾附加箭头

python - Linux 将长格式转换为宽格式

python - 我如何在一种布局中排列多个 pyplot 图形?