2015-05-01 19 views
2

我有一本字典如何反轉字典或列表中的值?

{1:’one’,2:’two’} 

我想用一個函數來扭轉這種局面,併成爲以下

{‘1:’eno’,2:’owt’ } 

我該怎麼辦呢?

同樣,如果我有一個列表或元組像[15,49],我怎樣才能將它轉換爲[94,51]

回答

12

您可以使用一個簡單的字典理解,使用string[::-1]反轉字符串的事實:

>>> d = {1: "one", 2: "two"} 
>>> {x: v[::-1] for x, v in d.items()} 
{1: 'eno', 2: 'owt'} 

你也可以定義一個函數:

def reverse_values(dct): 
    for key in dct: 
     dct[key] = dct[key][::-1] 

將改變在相同的值字典。

>>> reverse_values(d) 
>>> d 
{1: 'eno', 2: 'owt'} 

對於轉換[15,49]類型的列表[94, 51],你可以試試下面的代碼片段(這會爲[12, 34, 56, 78]類型的列表工作[87, 65, 43, 21]以及):

>>> l = [15,49] 
>>> [int(str(x)[::-1]) for x in l[::-1]] 
[94, 51] 
+0

另一個Q有了我想成爲列表或元組 [15,49] = > [94,51], (15,49)=>(94,51) 我該如何編寫函數? – GregMaddux

+0

@GregMaddux檢查編輯後的答案.. –

0

爲了您question here ,請使用以下內容:

由於[::-1]反轉字符串,我們可以將每個nu MBER爲字符串,反向每個項目,轉換回的整數,然後反轉整個列表:

>>> lst = [15, 49] 
>>> [int(str(item)[::-1]) for item in lst][::-1] 
[94, 51] 
>>>