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