程序员文章、书籍推荐和程序员创业信息与资源分享平台

网站首页 > 技术文章 正文

Python第101题:从列表创建嵌套字典【PythonTip题库300题】

hfteth 2024-12-30 02:20:11 技术文章 37 ℃

1、编程试题:

作为值的嵌套字典指的是一个字典作为另一个字典中键的值存储。例如:

employee = {

"name": "John Doe",

"contact": {

"email": "johndoe@example.com",

}

}

在这里,字典{"email": "johndoe@example.com",}是employee字典中"contact"键的值。

编写一个程序,将整数列表的每个元素与字典的每个项映射,形成一个嵌套字典。

定义函数map_list_dict(),它有两个参数input_dict和input_list。

在函数内部,将列表的每个元素映射到字典的相应键值对

形成一个新的字典,列表元素作为键,嵌套字典(包含输入字典的单个键值对)作为值并打印。

示例输入

{"a": 1, "b": 2, "c": 3}

6 7 8

示例输出

{6: {'a': 1}, 7: {'b': 2}, 8: {'c': 3}}

2、代码实现:

可编辑代码如下:

#!/usr/bin/python3.9
# -*- coding: utf-8 -*-
#
# Copyright (C) 2024 , Inc. All Rights Reserved
#
# @Time      : 2024/2/8 19:48
# @Author    : fangel
# @FileName  : 101. 从列表创建嵌套字典.py
# @Software  : PyCharm

# 使用json模块解析输入并处理JSON数据
import json

def map_list_dict(input_dict, input_list):
    resDict = {}
    for item in input_list:
        tmpDict = {}
        #先根据索引(即也是for循环的次数)获取输入的字典中的键和值
        oldkey = list(input_dict.keys())[input_list.index(item)]
        oldvalue = input_dict[oldkey]
        #将获取到的键和值重新组成一个临时的字典
        tmpDict[oldkey] = oldvalue
        #将这个字典做为新的值(键即是列表中的值)
        resDict[item] = tmpDict
    return resDict

# 获取输入字符串并将其解析为json
input_dict = json.loads(input())
# 获取整数输入并将其转换为列表
input_list = list(map(int, input().split()))
# 调用函数
print(map_list_dict(input_dict, input_list))

3、代码分析:

详见代码注释部分,先获取输入字典中的键和值,然后组成一个临时的字典,再将该字典做为新的值;

4、运行结果:

输入:

{"Name":"Tina","Roll":12}

5 6

输出:

{5: {'Name': 'Tina'}, 6: {'Roll': 12}}

Tags:

最近发表
标签列表