传感器采集数据
在人工智能的多模态数据处理中,不同传感器采集的特征数据需要融合。每个传感器用唯一ID标识,数据格式为“ID:特征值”。
编写程序将多个传感器的特征值合并,并计算每个ID的加权调和平均数(权重由出现次数决定)。 给定若干行传感器数据(格式为 ID:值),请按以下规则处理:
数据去重:同一ID的重复数据仅保留最后一次出现的值;
权重计算:统计每个ID的数据出现总次数 ;
融合计算:输出每个ID的值*出现次数(即权重与最后值的乘积)。
例如:
输入:
TempS:20 PressS:150 TempS:25 HumS:60
输出:
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}") 相似题推荐
已知列表my_list = [10,[20,30],40] ,关于print(my_list[1][0])的描述,正确的是?( )
| A. 会引发索引错误 |
B. 表示获取列表my_list中索引为 1 的元素 |
| C. 输出结果为20 |
D. 输出结果为[20, 30] |
统计单词
统计英文文本中出现的不同单词个数:输入一段英文文本,要求单词和单词之间用1个空格或标点符号隔开,文末以标点符号结尾,在区分单词大小写的情况下,输出该文本中所出现的不同单词个数。Python程序运行界面如下所示:
请输入英文文本:Where there is life,there is hope.
出现的不同单词个数为: 5
实现上述功能的 Python 程序如下,请在划线处填入合适的代码。
text=input("请输入英文文本:")
lst=[]
s=""
def judge(st):
if ① :
return False
else:
return True
for i in range(len(text)):
②
if "a"<=c<="z" or "A"<=c<="Z":
③
else:
if judge(s):
lst.append(s)
s=""
print("出现的不同单词个数为:", ④ ) 将某次比赛最后得分用字典存储:dict={"第1名":50,"第2名":48,"第3名":47,"第4名":45,"第5名":44,"第6名":42 }。现需要查询第3名成绩,下列表达式正确的是?( )
| A. dict{2} |
B. dict[2] |
| C. dict{"第3名" } |
D. dict["第3名"] |
想要从列表 ['A', 'B', 'C', 'D'] 中随机选择一个元素,应该使用 random 模块的哪个函数?( )
| A. random.randint(0, 3) |
B. random.uniform(0, 3) |
| C. random.choice(['A', 'B', 'C', 'D']) |
D. random.shuffle(['A', 'B', 'C', 'D']) |
阅读积分分享
社团组织开展阅读积分分享活动。每位成员都准备了一些积分赠送其他成员,这些积分平均分给对应的受赠予的人。给出社团成员姓名以及对应的现有积分、准备赠送的积分、接收赠送的社团成员信息,请计算每位社团成员的当前积分。
输入格式:
第1行:人数n,2≤ n≤10
第2到n+1行:每行包含一个字符串,表示每个人的姓名;一个整数,表示现有的积分。互相之间用空格隔开。
第n+2到最后,描述某个人赠送积分的信息:
某个人的第(1)行是赠送积分的同学姓名。
某个人的第(2)行包含2个数字:分别表示准备赠送积分数值v(0<=v<=2000),接受赠予的同学人数x ,互相之间用空格隔开。
如果x是非零的, 在接下来x行,列出每位接受赠予的同学姓名,一个姓名一行。
输入样例:
3 alien 5267 mars 3098 moon 2761 mars 1500 2 alien moon alien 500 1 mars moon 0 0
输出格式:
输出共n行,
每行包含一个字符串表示社团成员的姓名,和现有的积分值。互相之间用空格隔开。
输出样例:
alien 5517 mars 2098 moon 3511
#代码如下:
n=int(input())
name=[];score= ①
for i in range(1,n+1):
a,b = input().split(' ',1)
score[a]=int(b)
for i in range(1,n+1):
s=input()
v,x= map(int, input().split())
if (x>0):
w= ②
score[s]-=w*x
for j in range(1,x+1):
t=input()
score[t]+= ③
for i in score.keys():
print(i, ④ ) 