编写一个名为“ indexed_kvs”的函数,该函数不带任何参数,并返回一个新的键值存储,其中包含从0到36的整数,每个值存储在一个键中,该键是一个包含整数数字的字符串。例如,键值“ 0”:0将位于您返回的键值存储中(列表中包括0和36)。 (下面的代码)
def indexed_kvs():
d = dict()
for x in range(37):
d[x] = x
return d
我继续获得第一个关键和价值;如何获取所有键和值?
答案 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