龙空技术网

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

fangel 51

前言:

眼前咱们对“python获取键值对的值”可能比较注意,姐妹们都需要了解一些“python获取键值对的值”的相关内容。那么小编在网上搜集了一些对于“python获取键值对的值””的相关内容,希望各位老铁们能喜欢,你们一起来了解一下吧!

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  : PyCharmdef 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']}

标签: #python获取键值对的值