作者gasolin (小g)
看板Python
標題Re: [問題] 字典如何key,values交換
時間Fri Jan 22 19:43:58 2010
※ 引述《MicroPtt (Mission Start)》之銘言:
: 請問有函數或甚麼方法可以讓字典交換嗎??
: EX : Dic = {'aa': 0, 'bb': 1, 'cc': 2, 'dd': 3, 'ee': 4}
: 我想得到
: Dic = { 0:'aa', 1:'bb', 2:'cc', 3:'dd', 4:'ee' }
: 就是key & values互相交換
>>> Cid = {} #revert dict
>>> for k,v in Dic.iteritems():
Cid[v]=k
>>> S
{0: 'aa', 1: 'bb', 2: 'cc', 3: 'dd', 4: 'ee'}
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.32.51.246
1F:推 superGA:天外飛來S 01/23 01:18
2F:→ MicroPtt:感謝 01/23 01:29
3F:推 fcamel:挑戰一行:Cid = dict((v, k) for k, v in Dic.iteritems()) 01/23 22:45
4F:推 leondemon:樓上的跟上一篇推文的方式 哪種執行較快? 01/24 11:56
5F:推 superGA:我猜是這篇的比較快 01/24 22:00
6F:→ Sforever:這篇一秒 上一篇四秒 ,一百萬筆資料 01/24 22:22
7F:→ sbrhsieh:上一篇做法花太多成本在 list construction 01/24 22:44
8F:→ sbrhsieh:如果以 Python 3.0+ 來測試,差距就會小很多 01/24 22:46
9F:→ sbrhsieh:在 Python 3.0+ 環境中,此篇做法也不見得比較快 01/24 23:02
10F:推 fcamel:Python3 可以寫得更簡單: 01/25 15:48
11F:→ fcamel:{ v: k for k, v in Dic.items() } 01/25 15:48
13F:推 SMUGEN:Dict Comprehensions早該有了 List Comprehensions那麼好用 01/25 17:26
14F:推 picadar:受教了 XD 01/25 17:59