作者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