2012-06-02 39 views
1

我需要在字典中的元组内将正负号更改为负数。所以如果我有'位置:(3,4)'我需要将它改为'position:(3,-4)'。这是我的,但它不工作。如何迭代字典中的元组

for k,v in positionD.items(): 
    v = (v[0],-v[1]) 
    positionNewD[k] = v 
+0

是否要修改'positionD'? –

+2

它不起作用?你的代码看起来很好...... – Cameron

+0

你是否得到了抛出的异常。如果是这样,那是什么?在语法上,您的代码是正确的。 – sizzzzlerz

回答

0

试试这个(需要Python> = 2.7):

positionNewD = {k: (x, -y) for k, (x, y) in positionD.iteritems()} 

对于旧版本:

positionNewD = dict((k, (x, -y)) for k, (x, y) in positionD.iteritems()) 
+1

没有在你的“旧版本”变体中需要'[]' - 省略它使用一个生成器表达式,因为它不需要构造一个列表,所以它可以更高效。 – Amber

+0

@Amber solutely right – spatar

+0

除非它是一个*真的*旧版本,不支持生成器表达式:) –