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

Python实现指定格式列表转换为含id、Ipaddr字段的嵌套字典

实现方案

需求说明

现有存储用户信息的列表List1,列表内每个元素均为序号-用户名-IP地址格式的字符串,需将其转换为指定结构的字典:

  • 字典顶级键为每条记录对应的用户名
  • 每个顶级键对应嵌套字典作为值,包含两个固定字段:
    • id:存储对应记录的序号,值为整数类型
    • Ipaddr:存储对应记录的IP地址,值为字符串类型

完整代码

# 原始用户数据列表
List1 = ["1-Delphinia-65.61.138.207", 
"2-Lennie-74.37.240.220", 
"3-Shayne-174.76.131.156", 
"4-Veriee-59.20.115.49", 
"5-Val-172.101.94.229", 
"6-Lanny-1.16.47.151", 
"7-Laureen-117.2.197.11", 
"8-Kristyn-63.21.195.62", 
"9-Arlana-92.84.0.112", 
"10-Arney-49.145.219.15"]

user_info_dict = {}
for record in List1:
    # 按横杠分割字符串,指定最多分割2次,避免后续内容含横杠时拆分错误
    record_id, username, ip_addr = record.split('-', 2)
    user_info_dict[username] = {
        "id": int(record_id),
        "Ipaddr": ip_addr
    }

简洁写法(字典推导式):

user_info_dict = {
    username: {"id": int(rid), "Ipaddr": ip}
    for rid, username, ip in (item.split('-', 2) for item in List1)
}

转换结果

运行代码后得到的目标字典结构如下:

{
    'Delphinia': {'id': 1, 'Ipaddr': '65.61.138.207'},
    'Lennie': {'id': 2, 'Ipaddr': '74.37.240.220'},
    'Shayne': {'id': 3, 'Ipaddr': '174.76.131.156'},
    'Veriee': {'id': 4, 'Ipaddr': '59.20.115.49'},
    'Val': {'id': 5, 'Ipaddr': '172.101.94.229'},
    'Lanny': {'id': 6, 'Ipaddr': '1.16.47.151'},
    'Laureen': {'id': 7, 'Ipaddr': '117.2.197.11'},
    'Kristyn': {'id': 8, 'Ipaddr': '63.21.195.62'},
    'Arlana': {'id': 9, 'Ipaddr': '92.84.0.112'},
    'Arney': {'id': 10, 'Ipaddr': '49.145.219.15'}
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.03 08:31:21