Python 字典顺序函数的困难

Python 字典顺序函数的困难,python,Python,编写一个名为“indexed_kvs”的函数,该函数不接受任何参数,并返回一个新的键值存储,其中包含0到36之间的整数,每个值存储在一个键上,该键是一个包含整数位数的字符串。例如,键值“0”:0将在返回的键值存储中(包括列表中的0和36)。(我的代码如下) 我不断地得到第一把钥匙和价值;如何获取所有键和值?作为@Loocid注释,return语句不应该在for循环中,因此正确的代码应该是: def indexed_kvs(): d = dict() for x in range(

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


我不断地得到第一把钥匙和价值;如何获取所有键和值?

作为@Loocid注释,return语句不应该在for循环中,因此正确的代码应该是:

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

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

def indexed_kvs():
    return {str(x): x for x in range(37)}
你有你的“返回d”,在你的循环中。那么,会发生什么呢-

1) 函数开始

2)
for
循环执行一次:

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

b) 遇到
返回d
,他们想-'好的!我收到一份回执。我得走了

c) 轰!您的功能已完成

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

因此,您的新代码应该是:

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

您的返回不应该在for循环中。这样,代码不会给出任何错误。但是,正如问题“存储在一个键上,这个键是一个字符串”中所说的,你是对的,编辑
def indexed_kvs():
    d = dict()
    for x in range(37):
        d[str(x)] = x
    return d