Python中如何批量修改含元组键的字典值(单行实现)
解决字典值取反的单行语句问题
你之前的代码出错,是因为字典推导式里只遍历了字典的键(x),而不是键值对。当你写-x时,实际上是在对元组类型的键取反,这自然会触发TypeError: bad operand type for unary -: 'tuple'的错误。
要实现所有值取反的需求,你需要同时获取键和对应的值,正确的单行写法如下:
original_dict = {(0,0): 1, (2, 4): 2} new_dict = {key: -value for key, value in original_dict.items()}
执行这段代码后,new_dict就会得到你期望的结果:{(0,0): -1, (2, 4): -2}。
简单说明:
original_dict.items()会返回字典中所有的键值对(比如((0,0), 1)、((2,4), 2))- 在推导式里我们把每个键值对解构为
key和value,只对value执行取反操作,再和原key组合成新的键值对
内容的提问来源于stack exchange,提问作者kel
相关产品推荐
相关产品推荐

