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

Python中如何将两个对应索引的输出分别作为字典的键与值存储

解决Python中按索引对应将两组输出转为字典的问题

首先得指出你当前代码里的一个关键问题——list.append()方法是没有返回值的(实际返回None),所以你写的label = olabel.append(output)其实是把None赋值给了label变量,后面想用label[i]取值自然会报错。咱们一步步来修正,实现你要的功能:

正确实现步骤

1. 初始化收集数据的列表

先创建两个空列表,用来持续存储KNN输出的标签和日期:

olabel = []
ldate = []

2. 持续追加KNN的输出结果

每次从KNN模型拿到output(键)和ld(对应值)后,直接追加到列表里,不要把append()的返回值赋值给其他变量:

# 第一次获取KNN输出
output = 'Light1on'
ld = '2019-10-28 09:59:00'
olabel.append(output)
ldate.append(ld)

# 模拟第二次更新输出
output = 'Light2on'
ld = '2019-10-28 10:59:00'
olabel.append(output)
ldate.append(ld)

3. 将两个列表转为对应字典

这里有两种简洁的方式:

  • 方法一:字典推导式(适合需要自定义索引范围的场景)
    遍历列表的索引,把对应位置的元素配对成键值对:
    outputList = {olabel[i]: ldate[i] for i in range(len(olabel))}
    
  • 方法二:用zip()配合dict()(更简洁,推荐)
    zip()会自动把两个列表中索引对应的元素配对,再用dict()直接转成字典:
    outputList = dict(zip(olabel, ldate))
    

验证结果

执行完上面的代码后:

  • 初始状态(第一次追加后):
    olabel = ['Light1on'],ldate = ['2019-10-28 09:59:00']
    outputList会是{'Light1on': '2019-10-28 09:59:00'}
  • 更新一次后:
    olabel = ['Light1on', 'Light2on'],ldate = ['2019-10-28 09:59:00', '2019-10-28 10:59:00']
    outputList会是{'Light1on': '2019-10-28 09:59:00', 'Light2on': '2019-10-28 10:59:00'}

⚠️ 注意:如果olabel中出现重复的标签(即同一个键出现多次),后面的键值对会覆盖前面的,因为字典的键是唯一的,这点要根据你的业务需求留意哦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 09:06:50