我的循环在第一次迭代后停止

时间:2019-12-04 01:42:10

标签: python list loops dictionary

我试图遍历列表字典并返回包含特定整数的值的键。例如,如果我循环遍历{0:[3],1:[3],2:[4、0],3:[1],4:[1、0、2、3]},其中v = 4,它应该返回[2]。 但是,我的代码似乎只考虑了第一个键值对,我不明白为什么。如果整数在第一个键值对中,而不在其他任何键对中,则它将起作用。这是我做的功能:

def whence(g, v):
    # Your code here
    lov = []
    count = 0 
    for key, value in g.items(): 
        if v in value:
            lov.append(count)
        count += 1
        print(lov)
        return lov

2 个答案:

答案 0 :(得分:3)

您可以一行完成:

def whence(g, v):
    return [key for key, values in g.items() if v in values]

答案 1 :(得分:2)

return语句缩进太多。

def whence(g, v):
    # Your code here
    lov = []
    count = 0 
    for key, value in g.items(): 
        if v in value:
            lov.append(count)
        count += 1
        print(lov)
    return lov