Python传感器数据融合补全编程题
类型:程序题

在人工智能的多模态数据处理中,不同传感器采集的特征数据需要融合。每个传感器用唯一ID标识,数据格式为“ID:特征值”。

编写程序将多个传感器的特征值合并,并按以下规则处理:

  1. 数据去重:同一ID的重复数据仅保留最后一次出现的值;
  2. 权重计算:统计每个ID的数据出现总次数;
  3. 融合计算:输出每个ID的最后值*出现次数。

例如: 输入:

TempS:20
PressS:150
TempS:25
HumS:60
p

输出:

HumS:60
PressS:150
TempS:50

(TempS出现2次,最后值为25 → 25*2=50)

下面是小明编写的Python代码,请你将空白内容补充完整:

sensor_info = {} # 存储每个传感器ID的最后值和出现次数
while True:
    data_line = input() # 获取用户输入的一行数据
    if data_line == 'p': # 假设当输入p时停止输入
        break
    parts = data_line.split(':') # 把输入的行按冒号分割成ID和值
    sensor_id = parts[   ①   ]
    sensor_value = float(parts[1])
    if sensor_id in sensor_info: # 检查这个ID是否已经在字典里
        sensor_info[sensor_id][0] = sensor_value
        sensor_info[sensor_id][1] = sensor_info[sensor_id][   ②  ] + 1 # 统计出现次数
    else:
        sensor_info[sensor_id] = [sensor_value, 1]
if len(sensor_info) == 0: # 检查字典里是否没有数据
    print("NULL")
else:
    sorted_ids = sorted(   ③    ) # 对字典里的ID进行排序
    for current_id in   ④   :
        last_value = sensor_info[current_id][0]
        count = sensor_info[current_id][1]
        # 计算加权值
        weighted_value =   ⑤        
        print(f"{current_id}:{weighted_value}")
代码编辑器
测试用例输入
{{resultStatus.text}}