在人工智能的多模态数据处理中,不同传感器采集的特征数据需要融合。每个传感器用唯一ID标识,数据格式为“ID:特征值”。 编写程序将多个传感器的特征值合并,并计算每个ID的加权调和平均数(权重由出现次数决定)。 给定若干行传感器数据(格式为 ID:值),请按以下规则处理: 数据去重:同一ID的重复数据仅保留最后一次出现的值; 权重计算:统计每个ID的数据出现总次数 ; 融合计算:输出每个ID的值出现次数(即权重与最后值的乘积)。 例如: 输入: TempS:20 PressS:150 TempS:25 HumS:60 输出: HumS:60 PressS:150 TempS:50 # TempS出现2次,最后值为25 → 252=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}")
(1)0 (或等效答案);(2分) (2)1 (或等效答案); (2分) (3)sensor_info.keys() (或等效答案);(2分) (4)sorted_ids (或等效答案);(2分) (5)last_value * count (或等效答案)。(2分)