百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

Python第79题:字典键值交换【PythonTip题库精编300题】

off999 2024-10-13 04:20 41 浏览 0 评论

1、编程试题:

编写一个程序来交换字典的键和值。

定义函数swap_dict(),参数为一个字典dict。

在函数内部,反转给定字典的键和值。如果一个值出现多次,将对应键组合在一个列表中。

示例输入

{'Pizza': 'Food', 'Pasta': 'Food', 'Water': 'Drink', 'Coke': 'Drink'}

示例输出

{'Food': ['Pizza', 'Pasta'], 'Drink': ['Water', 'Coke']}

解释:

输入中Food的值出现多次,因此Food的键被保留在一个列表中['Pizza','Pasta']。

2、代码实现:

#!/usr/bin/python3.9
# -*- coding: utf-8 -*-
#
# Copyright (C) 2024 , Inc. All Rights Reserved
#
# @Time      : 2024/1/26 22:06
# @Author    : fangel
# @FileName  : 79. 字典键值交换.py
# @Software  : PyCharm

def swap_dict(dict):
    keyList = []
    valueList = []
    resDict = {}
    #步骤1:按照题意,翻转给定字典的键和值,因此定义两个列表,将键和值反向存储
    for key,value in dict.items():
        keyList.append(value)
        valueList.append(key)
    tmp = []
    #步骤2:针对翻转后的key列表,进行循环判断
    for i in range(0,len(keyList)):
        #如果key元素不在字典里
        if keyList[i] not in resDict:
            #那么定义一个临时列表,用于存放key对应的value值(因为可能有多个)
            tmp = []
            #先将value加进去
            tmp.append(valueList[i])
            #将临时value列表赋值给字典的键
            resDict[keyList[i]] = tmp
        #如果key元素已经添加到字典里来了,再添加时,需要添加该key对应的其他value值
        else:
            #先获取已经键的值resDict[keyList[i]],然后再将后面的value合并到一起,形成一个新的value值
            value = resDict[keyList[i]] + valueList[i].split()
            #再将汇总后的value列表赋值给字典的键
            resDict[keyList[i]] = value
    return resDict

# 读取输入的字典
dict = eval(input())
# 调用函数
print(swap_dict(dict))

3、代码分析:

详见编码的注释,需要注意的是需要检查后存入的键值对重的键是否在字典中已经存在

4、运行结果:

输入:

{'Paris': 'City', 'France': 'Country', 'Europe': 'Continent', 'Berlin': 'City', 'Germany': 'Country'}

输出:

{'City': ['Paris', 'Berlin'], 'Country': ['France', 'Germany'], 'Continent': ['Europe']}

相关推荐

cad图库(cad图块比例怎么调)

cad图库导入的操作步骤如下所示1、在CAD工作页面命令栏中输入imageattach命令;2、回车后提示选取导入图片的存储位置;3、选取图片后出现附着图片窗口;4、确定后在CAD窗口中选取插入位...

qq游戏大厅官网电脑版(qq游戏大厅pc版)
  • qq游戏大厅官网电脑版(qq游戏大厅pc版)
  • qq游戏大厅官网电脑版(qq游戏大厅pc版)
  • qq游戏大厅官网电脑版(qq游戏大厅pc版)
  • qq游戏大厅官网电脑版(qq游戏大厅pc版)
126网易免费邮箱(126网易免费邮箱注册官网)

126邮箱是网易的一个免费邮箱登录入口在浏览器输入:mail.126.com浏览器进入126邮箱网站之后,即可自行登录126邮箱账号。登陆入口https://www.126.com/126邮箱是网易公...

乒乓球直播在线观看免费(乒乓球直播在线观看免费全运会视频)

第一,首先看比赛战术安排。比如比赛对象的选择,主要是扬长避短。第二,看发球技术。发球取胜是重要一环。第三,看接发球技术。因前三板极为重要。第四,看相持球的处理。谁更有耐心,沉着应对等!想要观看乒乓球的...

爱奇艺视频免费下载安装(爱奇艺视频免费手机下载)
  • 爱奇艺视频免费下载安装(爱奇艺视频免费手机下载)
  • 爱奇艺视频免费下载安装(爱奇艺视频免费手机下载)
  • 爱奇艺视频免费下载安装(爱奇艺视频免费手机下载)
  • 爱奇艺视频免费下载安装(爱奇艺视频免费手机下载)
qq安全管家 手机版(qq安全管家怎么卸载)

您好,亲爱的管家用户  坏人可能会通过木马或钓鱼网站骗取您输入的动态密码,进而进行其他恶意操作。建议您对QQ号码经常使用的电脑及手机进行全盘查杀,平时输密码密保前一定要认真辨别官网和官方客户端。 ...

邮箱注册入口(example邮箱注册入口)
邮箱注册入口(example邮箱注册入口)

可在网易邮箱官网注册邮箱账号并登录。步骤如下:1.打开网易邮箱官网,点击“立即注册”,进入注册界面。3.回到之前的页面,输入账号密码登录即可使用。网易邮箱的优势之——安全稳定提供HTTPS登录和SSL邮件加密功能,保证通信安全,无须...

2026-01-23 18:51 off999

腾讯视频会员免费领取(腾讯视频会员免费领取网站)
腾讯视频会员免费领取(腾讯视频会员免费领取网站)

步骤/方式1打开腾讯视频APP,点击下方中间标签"新春特惠",找到"免费领VIP"。步骤/方式2点击"免费领VIP",界面跳转点微视活动界面。步骤/方式3领腾讯会员需要做微视任务,签到7天可以领1天VIP会员。...

2026-01-23 18:43 off999

二战风云2无限钻石水晶版(二战风云2破解版无限资源)

要想得高分,简洁点,就是向前行动是坦克,与反坦克炮一起,反坦克炮到达位置架设,接着在坦克即将到达时摩托化部队前进。毕竟能省点时间就省点时间,因为这个游戏,时间很重要。如果是1v2,那就,守城市,反坦...

一键抠图网页版(抠图网页版)
  • 一键抠图网页版(抠图网页版)
  • 一键抠图网页版(抠图网页版)
  • 一键抠图网页版(抠图网页版)
  • 一键抠图网页版(抠图网页版)
高清多功能视频播放器(多功能视屏播放器)

多功能高清视频播放器使用起来非常简单,首先将视频文件传输到播放器中,然后通过遥控器或者触摸屏操作选择要播放的视频。用户可以根据需要进行视频播放设置,如调整音量、播放速度等。此外,播放器还支持多种视频格...

老版街机游戏大全(开火车老虎机(单机版))

横版过关:快打旋风,恐龙新世纪,名将,吞食天地赤壁之战,圆桌武士,变身忍者,惩罚者,飞机射击:彩京打击者1945,战国世纪,四国战机,太阳表决,格斗:街霸系列,KOF系列,VR战士系列,铁拳系列,死或...

下载本地歌曲免费(下载本地歌曲免费听)
  • 下载本地歌曲免费(下载本地歌曲免费听)
  • 下载本地歌曲免费(下载本地歌曲免费听)
  • 下载本地歌曲免费(下载本地歌曲免费听)
  • 下载本地歌曲免费(下载本地歌曲免费听)
内存清理大师(内存清理大师V1.2.6官方版)
内存清理大师(内存清理大师V1.2.6官方版)

1、打开手机清理大师应用APP2、点击扫描垃圾3、在弹出来的窗口点击清理垃圾4、最后即可清理完成在手机中设置里的通用里储存空间与iCloud进行清除。操作方法点开设置->通用->储存空间与iCloud用量点击储存空间-...

2026-01-23 17:03 off999

登录器下载安装(云端辅助登录器下载安装)

有其他的程序正在使用中,你电脑重新启动一次再删除dlq试试,或者把其他的程序都关了然后再重新安装一次再删除.祝你好运!!!!!!!!!!!!1国服的下载很简单,和当年CF、逆战的方式一样,我们直接...

取消回复欢迎 发表评论: