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

Python中如何将狗信息列表转换为指定格式的字典列表?

解决方案

可以通过遍历列表,按Dog标识分组构建字典,具体实现如下:

核心思路

利用每个狗的信息都以Dog开头、后续紧跟Breed和Colour的规律,遍历过程中维护一个临时字典存储当前狗的信息,遇到新的Dog条目时,将临时字典存入结果列表并重置,最终得到目标格式的字典列表。

代码实现

service_notes = ['Dog Timmy\n',
 'Breed Labrador\n',
 'Colour Black\n','Dog Bob\n',
 'Breed Poodle, 10, short, 2018\n',
 'Colour white,\n',
 'Dog Charlie\n',
 'Breed Sausagedog\n',
 'Colour Brown\n']

result = []
current_dog = {}

for item in service_notes:
    # 去除换行符和首尾空格
    clean_item = item.strip()
    # 按第一个空格拆分键和值,避免Breed/Colour后带空格的内容被拆分
    key, value = clean_item.split(' ', 1)
    
    if key == 'Dog':
        # 若临时字典已有内容,先存入结果列表
        if current_dog:
            result.append(current_dog)
        # 初始化新狗的字典
        current_dog = {key: value}
    else:
        # 补充当前狗的品种/颜色信息,如需首字母大写可加value.capitalize()
        current_dog[key] = value

# 存入最后一条狗的信息
result.append(current_dog)

print(result)

输出结果

[{'Dog': 'Timmy', 'Breed': 'Labrador', 'Colour': 'Black'}, 
 {'Dog': 'Bob', 'Breed': 'Poodle, 10, short, 2018', 'Colour': 'white,'}, 
 {'Dog': 'Charlie', 'Breed': 'Sausagedog', 'Colour': 'Brown'}]

如果需要将颜色值统一为首字母大写,只需将赋值行改为current_dog[key] = value.capitalize()即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 02:33:34