You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将用户输入生成的列表转换为指定结构的嵌套字典?

如何将分散的用户列表转换为指定嵌套字典?

首先咱们先明确需求:你手上有这些分开的列表数据:

user1_name = ['Adam']
user1_passion = ['Coding','Wood Chopping','Sleeping']
user2_name = ['Eve']
user2_passion = ['Coding','Eating Apples','Sleeping']

想要把它们转换成这样的嵌套字典:

user_info = {
    'user1': {
        'fname': 'adam',
        'passion': ['coding', 'wood chopping', 'sleeping']
    },
    'user2': {
        'fname': 'eve',
        'passion': ['coding', 'eating apples', 'sleeping']
    },
}

其实方法很直接,咱们可以手动构建这个字典,同时处理字符串的大小写转换:

基础实现代码

# 处理user1的数据:取出唯一的名字转小写,遍历爱好列表把每个元素转小写
user1_data = {
    'fname': user1_name[0].lower(),
    'passion': [p.lower() for p in user1_passion]
}

# 同样处理user2的数据
user2_data = {
    'fname': user2_name[0].lower(),
    'passion': [p.lower() for p in user2_passion]
}

# 组合成最终的嵌套字典
user_info = {
    'user1': user1_data,
    'user2': user2_data
}

print(user_info)

代码小解释

  • 因为user1_name和user2_name都是只有一个元素的列表,所以直接用[0]取出名字,再用lower()转成小写。
  • 爱好列表用列表推导式批量处理:[p.lower() for p in user1_passion]会遍历每个爱好,把字符串统一转成小写,生成新的列表。

如果以后要加更多用户(比如user3、user4),重复写代码太麻烦,咱们可以用循环批量处理:

# 把所有用户的信息整理成一个统一列表,每个元素是(用户标识, 名字列表, 爱好列表)
users = [
    ('user1', user1_name, user1_passion),
    ('user2', user2_name, user2_passion)
]

user_info = {}
# 循环遍历每个用户的数据,自动生成字典内容
for user_key, name_list, passion_list in users:
    user_info[user_key] = {
        'fname': name_list[0].lower(),
        'passion': [p.lower() for p in passion_list]
    }

这样以后新增用户,只需要往users列表里加一行数据就行,不用重复写逻辑,更灵活~

内容的提问来源于stack exchange,提问作者Display_name

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.30 13:18:11