Re: [問題] 字典如何key,values交換

看板Python作者 (小g)時間15年前 (2010/01/22 19:44), 編輯推噓7(707)
留言14則, 8人參與, 最新討論串2/2 (看更多)
※ 引述《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

01/23 01:18, , 1F
天外飛來S
01/23 01:18, 1F

01/23 01:29, , 2F
感謝
01/23 01:29, 2F

01/23 22:45, , 3F
挑戰一行:Cid = dict((v, k) for k, v in Dic.iteritems())
01/23 22:45, 3F

01/24 11:56, , 4F
樓上的跟上一篇推文的方式 哪種執行較快?
01/24 11:56, 4F

01/24 22:00, , 5F
我猜是這篇的比較快
01/24 22:00, 5F

01/24 22:22, , 6F
這篇一秒 上一篇四秒 ,一百萬筆資料
01/24 22:22, 6F

01/24 22:44, , 7F
上一篇做法花太多成本在 list construction
01/24 22:44, 7F

01/24 22:46, , 8F
如果以 Python 3.0+ 來測試,差距就會小很多
01/24 22:46, 8F

01/24 23:02, , 9F
在 Python 3.0+ 環境中,此篇做法也不見得比較快
01/24 23:02, 9F

01/25 15:48, , 10F
Python3 可以寫得更簡單:
01/25 15:48, 10F

01/25 15:48, , 11F
{ v: k for k, v in Dic.items() }
01/25 15:48, 11F

01/25 15:50, , 12F
01/25 15:50, 12F

01/25 17:26, , 13F
Dict Comprehensions早該有了 List Comprehensions那麼好用
01/25 17:26, 13F

01/25 17:59, , 14F
受教了 XD
01/25 17:59, 14F
文章代碼(AID): #1BMO-13w (Python)
討論串 (同標題文章)
文章代碼(AID): #1BMO-13w (Python)