python一道关于颠倒字典中键值的问题

题目

颠倒字典中的键和值。用一个字典做输入,输出另一个字典,用前者的键做值,前者的值做键。

首先要解决的就是输入问题,上一篇python一道关于字典的题的文章已经解决了这个问题(个人比较懒直接复制粘贴了过来)。其次就是颠倒键值问题,这个比较简单。我们可以用循环把def InsertDict(D, char1, char2):这个函数把输入字典的值作为char1(即在新建的字典中当键),输入字典的键作为char2(即在新建的字典中当值)。

def InsertDict(D, char1, char2):
    D.setdefault(char1)
    D[char1] = char2

D = {}
L = input('请输入将要当作字典中值的列表: ')
L1 = list(L)
L2 = []
for i in range(len(L1)):
    n = input('对于键为%d的键值对请输入与键对应的字符串:  '%int(L[i]))
    L2.append(n)

for i in range(len(L1)):
    char1 = str(L1[i])
    char2 = str(L2[i])
    InsertDict(D, char1, char2)
print('没有颠倒键值前的字典为')    
for eachkey in sorted(D):
    print('key: ' + eachkey  + ' ' + 'value: ' + D[eachkey])
#以上代码解决字典的输入问题,下面的代码解决用输入字典的值做键,键做值(前面已经说过自己比较懒,又不想把上一篇文章重新写,所以就复制粘贴了)#
D1 = {}
for k in D:
    char1opposite = str(D[k])
    char2opposite = str(k)
    InsertDict(D1, char1opposite, char2opposite)
print('颠倒键值后的字典为')
for eachkey in sorted(D1):
    print('key: ' + eachkey  + ' ' + 'value: ' 
请输入将要当作字典中值的列表: 1234
对于键为1的键值对请输入与键对应的字符串:  a
对于键为2的键值对请输入与键对应的字符串:  b
对于键为3的键值对请输入与键对应的字符串:  c
对于键为4的键值对请输入与键对应的字符串:  d
没有颠倒键值前的字典为
key: 1 value: a
key: 2 value: b
key: 3 value: c
key: 4 value: d
颠倒键值后的字典为
key: a value: 1
key: b value: 2
key: c value: 3
key: d value: 4

注意一下为了输出比较好看在下面这段代码中

    n = input('对于键为%d的键值对请输入与键对应的字符串:  '%int(L[i]))

我用了%int(L[i])如果刚开始想用单个字母做键的小伙伴运行时会报错的。可以加以判断是单个字母做键还是数字做键。(字符串做键的话如果为了运行结果好看可以用正则表达式判断)

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值