万卷网 > 题目详情
题型:编程题

传感器采集数据

在人工智能的多模态数据处理中,不同传感器采集的特征数据需要融合。每个传感器用唯一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}")
更新时间:2025-07-24 10:17:45 |
【知识点】 电子学会Python五级

相似题推荐

单选题

已知列表my_list = [10,[20,30],40] ,关于print(my_list[1][0])的描述,正确的是?( )

A.

 会引发索引错误

B.

 表示获取列表my_list中索引为 1 的元素

C.

 输出结果为20

D.

 输出结果为[20, 30]

2026-07-25
编程题

统计单词

统计英文文本中出现的不同单词个数:输入一段英文文本,要求单词和单词之间用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("出现的不同单词个数为:",         ④        )
2026-07-25
单选题

将某次比赛最后得分用字典存储: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名"]

2026-07-25
单选题

想要从列表 ['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'])

2026-07-25
编程题

阅读积分分享

社团组织开展阅读积分分享活动。每位成员都准备了一些积分赠送其他成员,这些积分平均分给对应的受赠予的人。给出社团成员姓名以及对应的现有积分、准备赠送的积分、接收赠送的社团成员信息,请计算每位社团成员的当前积分。

输入格式:

第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,        ④        )
2026-07-25
公众号
客服 反馈
顶部