2024-04-29 05:28:02 发布
网友
我有一本看起来像
d= {(1, 8): 94.825000000000003, (2, 8): 4.333}
我试图用一个函数来求所有的值。
我不想重新编字典。
newD= {} for x,y in d.iteritems(): newD+= {x:round(y)}
是否有任何pythonic方法可以对所有值应用round函数?
round
这有点复杂,但你确实要求一种“Python式的方式”;)
newD = {k:round(v) for k, v in d.items()}
然而,这本词典的理解只适用于2.7+。如果使用较旧版本的Python,请尝试以下更复杂的方法:
newD = dict(zip(d.keys(), [round(v) for v in d.values()]))
让我把这个打开一点:
d
dict()
zip()
d.keys()
你可以试试这样的:
for k, v in d.iteritems(): d[k] = round(v)
它将对字典中的所有项目进行就地舍入。在这个特定的例子中,它将完美地工作,但是要小心-使用the round function的所有常规注意事项都适用。
这有点复杂,但你确实要求一种“Python式的方式”;)
然而,这本词典的理解只适用于2.7+。如果使用较旧版本的Python,请尝试以下更复杂的方法:
让我把这个打开一点:
d
)对象重新分配给新dictionary(尽管您可以轻松地将其分配给同一个名称)dict()
确保最终结果是dictionary对象zip()
返回元组列表,其中第i个元组包含来自每个参数序列的第i个元素zip()
的第一个参数序列是字典键(d.keys()
)zip()
的第二个参数序列是列表理解后的舍入值你可以试试这样的:
它将对字典中的所有项目进行就地舍入。在这个特定的例子中,它将完美地工作,但是要小心-使用the round function的所有常规注意事项都适用。
相关问题 更多 >
编程相关推荐