社区首页 >问答首页 >交换字典的内容

交换字典的内容
EN

Stack Overflow用户
提问于 2013-12-08 08:03:13
回答 4查看 174关注 0票数 3

我有一本字典,其中的键和值将被交换。例如:

代码语言:javascript
代码运行次数:0
复制
dic = {"indianapolis":"indiana", "columbus":"ohio", "jackson":"mississippi",
  "phoenix":"arizona"}

产出应是:

代码语言:javascript
代码运行次数:0
复制
{"indiana":"indianapolis", "ohio":"columbus", "mississippi":"jackson",
  "arizona":"phoenix"}

这里是我尝试过的,但是约束条件是只应该使用sorted()split()函数,而不应该使用其他内置函数(比如keys()values()items()lambda)。不太确定该怎么做。有人能帮忙吗?我对字典很陌生。

代码语言:javascript
代码运行次数:0
复制
def interchange(input_dict):
    temp = {}
    dic = input_dict
    for i in dict:
        temp[i[1]] = i[0]
    return temp_dic
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-12-08 08:05:56

只应使用.sorted().split()函数。

使用sorted和字典理解:

代码语言:javascript
代码运行次数:0
复制
>>> dic = {"indianapolis":"indiana", "columbus":"ohio", "jackson":"mississippi", "phoenix":"arizona"}
>>> {dic[k]:k for k in sorted(dic)}
{'ohio': 'columbus', 'mississippi': 'jackson', 'arizona': 'phoenix', 'indiana': 'indianapolis'}

sorted按排序顺序返回字典的键,尽管最终dict的顺序将是任意的。上述代码相当于:

代码语言:javascript
代码运行次数:0
复制
>>> sorted(dic)
['columbus', 'indianapolis', 'jackson', 'phoenix']
>>> new_dic = {}
>>> for k in sorted(dic):
...     new_dic[dic[k]] = k
...     
>>> new_dic
{'ohio': 'columbus', 'mississippi': 'jackson', 'arizona': 'phoenix', 'indiana': 'indianapolis'}

更新:

代码语言:javascript
代码运行次数:0
复制
def interchange(input_dict):
    return {input_dict[k]:k for k in sorted(input_dict)}
... 
>>> interchange(dic)
{'ohio': 'columbus', 'mississippi': 'jackson', 'arizona': 'phoenix', 'indiana': 'indianapolis'}
票数 3
EN

Stack Overflow用户

发布于 2013-12-08 08:03:54

使用dict理解:

代码语言:javascript
代码运行次数:0
复制
>>> dic = {"indianapolis":"indiana", "columbus":"ohio",
...        "jackson":"mississippi", "phoenix":"arizona"}
>>> {dic[key]: key for key in dic}
{'ohio': 'columbus', 'mississippi': 'jackson',
 'arizona': 'phoenix', 'indiana': 'indianapolis'}
票数 1
EN

Stack Overflow用户

发布于 2013-12-08 08:06:23

一些不错的选择:

代码语言:javascript
代码运行次数:0
复制
dic = {"indianapolis":"indiana", "columbus":"ohio", "jackson":"mississippi",
  "phoenix":"arizona"}

newDict = dict(zip(dic.values(),dic.keys()))

print newDict

输出:

代码语言:javascript
代码运行次数:0
复制
{'ohio': 'columbus', 'mississippi': 'jackson', 'arizona': 'phoenix', 'indiana': 'indianapolis'}

解释:

zip()返回一个元组列表(字典),并且zip的参数按顺序反转.

没有python方法的

代码语言:javascript
代码运行次数:0
复制
dic = {"indianapolis":"indiana", "columbus":"ohio", "jackson":"mississippi",
  "phoenix":"arizona"}

newDict = {}

for key, item in dic.iteritems():
    newDict.update({item: key})

print newDict

输出:

代码语言:javascript
代码运行次数:0
复制
{'ohio': 'columbus', 'mississippi': 'jackson', 'arizona': 'phoenix', 'indiana': 'indianapolis'}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20455477

复制
相关文章
mac上安装软件_mac 安装软件
Mac下面除了用dmg、pkg来安装软件外,比较方便的还有用MacPorts来帮助你安装其他应用程序,跟BSD中的ports道理一样。MacPorts就像apt-get、yum一样,可以快速安装些软件。
全栈程序员站长
2022/11/08
2K0
Mac 上常用软件
工欲善其事必先利其器,能够合理有效的利用工具,可以很大程度地提升工作效率。但是不能迷失在工具中,需使工具为我所用。
一缕殇流化隐半边冰霜
2023/06/09
4600
Mac 上常用软件
Mac上的一些软件
Mac平台强大的多轨音频编辑器,简单却功能强大,支持现场录音,数字录音和记录软件,支持各种声音之间的转换
fliter
2023/06/18
5260
Mac上的一些软件
Mac上配置的环境变量重启就失效
经过查询,原来现在Mac的默认环境已经改成了zsh,而它加载的是~/.zshrc 文件,但在 .zshrc 中并没有定义任务环境变量。
莫得急
2022/07/29
3K0
mac写作软件iA Writer for Mac
好用的mac写作软件是哪一款?iA Writer mac版是一款好用的mac写作软件,可以更加便利高效地写作,包括写博客、写日记、写草稿等等,让你可以随时随地移动办公。
Mac软件分享
2022/09/04
1.1K0
mac写作软件iA Writer for Mac
不用Mac也可以将打包好的ipa上架App​
有一段时间没有写博客了,今天用windows上架了一个app到苹果商店,现在才知道原来上架app到苹果商店可以不用Mac的,感觉自己已经落后了​
iOS程序应用
2022/12/09
2980
不用Mac也可以将打包好的ipa上架App
先到https://developer.apple.com添加一个App IDs,如下图:选择App IDs ——> 点击 + ,创建一个新的App ID
iOS Magician
2023/03/22
4370
不用Mac也可以将打包好的ipa上架App
不用Mac也可以将打包好的ipa上架App
有一段时间没有写博客了,今天用windows上架了一个app到苹果商店,现在才知道原来上架app到苹果商店可以不用Mac的,感觉自己已经落后了
爱学iOS的小麦子
2023/05/09
2990
不用Mac也可以将打包好的ipa上架App
CameraBag Photo for Mac(Mac滤镜软件)
CameraBag Photo Mac版是一款Mac滤镜软件,提供200多种一键式滤镜都带入的终极工具。
Mac软件分享
2022/08/07
1.1K0
CameraBag Photo for Mac(Mac滤镜软件)
Keka for Mac(mac压缩解压软件)
Mac压缩解压软件哪个好用?Keka Mac版是一款mac压缩解压软件,可以满足mac os平台的日常解压缩需求。
Mac软件分享
2022/08/08
1.1K0
Keka for Mac(mac压缩解压软件)
mac录屏软件推荐_mac 录屏软件
工作和生活中,我们常常需要录制电脑屏幕,例如老师和学生上网课、游戏大神分享操作技巧。那么,在Mac上有哪一些好用的录屏软件呢?作为一个工具软件重度爱好者,我整理了以下五大最好用的录屏软件,大家可以自行参考种草:
全栈程序员站长
2022/11/10
6.8K0
mac录屏软件推荐_mac 录屏软件
软件测试|Mac安装appium报权限问题
appium是我们最常用的app自动化测试工具,基本上每一个自动化测试工程师都需要安装appium环境,我的一位朋友在给自己的新买的Mac电脑安装appium时出现了一个报错,报错指向权限被拒绝,无法下载appium,这是一个很普遍的权限问题,下面就为大家介绍一下解决appium安装时的权限被拒绝的问题。
霍格沃兹测试开发Muller老师
2023/08/20
3300
在 Mac 上使用 PICT 进行 Pairwise 测试
PICT(Pairwise Independent Combinatorial Testing),是微软开发的用于 Pairwise 的用例生成工具,按照规定的数据结构设置,PICT 默认会按照两两组合的原理设计并输出测试用例,通过 “/o:N” 参数也可支持 “N-wise” 的用例生成。
叨叨软件测试
2020/11/09
2K0
Soulver for Mac(Mac计算器软件)
Soulver mac版是一款Mac计算器软件,支持数字运算,还支持用户输入文字,进行文字解读,然后进行运算,运行速度也特别的快,使用起来很方便。
Mac软件分享
2022/08/05
9100
Soulver for Mac(Mac计算器软件)
Outline for Mac(Mac记事本软件)
Outline for mac是Mac 上的一款非常好用的Mac记事本软件,Outline for mac是与 Microsoft OneNote 文件格式完全兼容,并支持与微软 SkyDrive 同步。这允许您将您的笔记和 Windows PC 和其他设备与安装 OneNote 同步。
用户10121095
2022/12/09
1.2K0
BarLinks mac(mac书签管理软件)
BarLinks for mac一个不错的mac书签管理软件。在你的浏览器中保存了太多的书签,寻找和打开这些书签是很烦人的。BarLinks让你在菜单栏上直接存储、快速查找和打开书签。它可以使用你的默认浏览器在新标签中打开你保存的任何链接。
Mac小小
2022/08/30
8070
CameraBag Photo Mac(Mac滤镜软件)2022.3.0
CameraBag Photo mac是一款相当优秀的实用型照片滤镜工具,软件功能全面,提供了超过200个可调滤镜供用户使用,软件支持96位模拟引擎,让您轻松进行曝光、色调、对比度的调整,CameraBag Photo软件便捷好用,支持所有主要的RAW图像格式,同时软件支持批量处理。
Mac知识分享
2022/08/08
5030
Archiver 3 for Mac(mac压缩解压软件)
Archiver 3 mac版是一款好用的mac压缩解压软件,Archiver mac 的界面简单却又不失华丽,是您压缩解压缩不可或缺的助手。
Mac软件分享
2022/08/26
1K0
Archiver 3 for Mac(mac压缩解压软件)
Word Clock for Mac(mac屏幕保护软件)
Word Clock for Mac是一款mac屏幕保护软件,用简约的风格和各种美好的字体来装饰你的桌面,同时高亮显示你的时间,提醒你不要忘记各个时刻。
Mac软件分享
2022/08/10
8710
Word Clock for Mac(mac屏幕保护软件)
点击加载更多

相似问题

Mac上的测试用例编写软件?

11

有没有办法不用硬编码就缩短我的CountryViewController.m?

10

我不能在mac上构建pyPortMidi

20

我不能在我的mac上启动rabbitmq

44

不能在我的Mac上运行eclipse

13
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文