【发布时间】:2020-05-24 13:39:37
【问题描述】:
这是我的代码,它应该生成一个字典,其中键是 1 到 20 之间的数字(都包括在内),值是键的平方。该函数应该只打印值。
d={}
d.update(dict(map(lambda i:({i:i**2}),[i for i in range(0,21)])))
print(d.values())
它给了我以下错误:
File "D:\python\py\new\dict_1_to_20_sqr.py", line 16, in <module>
d.update(dict(map(lambda i:({i:i**2}),[i for i in range(0,21)])))
ValueError: dictionary update sequence element #0 has length 1; 2 is required
请指出我的错误。
谢谢。
【问题讨论】:
-
{i: i**2 for i in range(0,21)},就这么简单。 -
正如@Sushanth 指出的那样,您创建简单字典的方法过于复杂。如果你想知道你的方法失败的原因,看看
list(map(lambda i:({i:i**2}),[i for i in range(0,21)]))的输出,你就会明白了。 -
@TimPietzcker 谢谢,我不敢相信我错过了!
-
谢谢@Sushanth,答案很完美。
-
@TimPietzcker,感谢您指出错误。
标签: python dictionary generator