2012-06-02 111 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

除非它是一個*真的*舊版本,不支持生成器表達式:) –