字典顺序功能的难点

时间:2018-10-10 02:55:32

标签: python

编写一个名为“ indexed_kvs”的函数,该函数不带任何参数,并返回一个新的键值存储,其中包含从0到36的整数,每个值存储在一个键中,该键是一个包含整数数字的字符串。例如,键值“ 0”:0将位于您返回的键值存储中(列表中包括0和36)。 (下面的代码)

def indexed_kvs():
    d = dict()
    for x in range(37):
        d[x] = x
        return d

我继续获得第一个关键和价值;如何获取所有键和值?

3 个答案:

答案 0 :(得分:2)

您从循环内部返回,这是一个常见错误,至少在这种简单情况下,使用dict comprehension可以完全避免:

def indexed_kvs():
    return {str(x): x for x in range(37)}

答案 1 :(得分:0)

作为@Loocid注释,return语句不应位于for循环内,因此正确的代码应为:

def indexed_kvs():
    d = dict()
    for x in range(37):
        d[str(x)] = x
    return d

答案 2 :(得分:0)

在循环内部,您有“ return d”。所以,发生的是-

1)函数开始

2)for循环执行一次:

a)将0添加到字典中的键0

b)遇到return d,他们认为-'好!我收到了退货单。我要退出! '

c)轰!您的功能已完成

因此,只需将return d移出循环即可。因此,当循环结束时,函数将退出。

因此您的新代码应为:

def indexed_kvs():
    d = dict()
    for x in range(37):
        d[str(x)] = x
    return d