Python如何对字典中指定键对应列表里的集合元素执行平方运算
问题原因
- 你的代码在每次循环时都对
squared变量重新赋值,上一次循环的计算结果会被直接覆盖,因此循环结束后只能保留最后一组元素的运算结果 - 你定义的字典变量名为
di,代码中访问时写的是dic,运行会直接报变量未定义错误 - 你需要的结果是集合类型,原代码用列表推导式得到的是列表,和预期结构不符
解决方法
你可以预先定义一个空列表存储每一轮的计算结果,示例代码如下:
di = { "R": [{7, 9}, {5, 8}], "N": [{6, 9}, {8, 8}], "L": [{7, 9}, {5, 0}], "P": [{0, 9}, {7, 8}] } result = [] for item in di["R"]: squared_set = {num ** 2 for num in item} result.append(squared_set)
运行后result的值就是[{49, 81}, {25, 64}],符合你的预期。
也可以用嵌套推导式简化写法,一行即可得到结果:
result = [{num**2 for num in item} for item in di["R"]]
内容的提问来源于stack exchange,提问作者job search
相关产品推荐
相关产品推荐

