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
相关产品推荐
相关产品推荐

