A21835. 指令序列优化在人工智能系统中,历史操作指令常以列表形式存储。为提高存储效率和确保数据不可变性,需将连续重复的指令分组成元组。例如指令序列 [5,5,5,2,2,3] 会被优化为 [(5,5,5), (2,2), (3,)]。给定一个由整数组成的列表,请将其转换为由元组构成的列表,每个元组包含原列表中连续相同的元素片段。按顺序输出所有分组后的元组。例如:输入:5 5 5 2 2 3输出:(5,5,…
填空题
困难
知识点
题目描述
指令序列优化
在人工智能系统中,历史操作指令常以列表形式存储。为提高存储效率和确保数据不可变性,需将连续重复的指令分组成元组。例如指令序列 [5,5,5,2,2,3] 会被优化为 [(5,5,5), (2,2), (3,)]。给定一个由整数组成的列表,请将其转换为由元组构成的列表,每个元组包含原列表中连续相同的元素片段。按顺序输出所有分组后的元组。
例如:
输入:
5 5 5 2 2 3输出:
(5,5,5),(2,2),(3,)下面是小明编写的代码,请你将空白内容补充完整。
numbers_input = input("请输入一些用空格分隔的数字: ")
numbers = []
for num_str ______①________numbers_input.split():
numbers.append(int(num_str))
# 用于存储分组结果的列表
grouped_numbers = []
if len(numbers) == _______ ②_______:
print("你没有输入任何数字。")
else:
current_group = [numbers[0]]
for i in range(1, len(numbers)):
if numbers[i] == numbers[ ________ ③__________ ]:
current_group.append(numbers[i])
else:
grouped_numbers.append(tuple( _______④________ ))
current_group = [numbers[i]]
grouped_numbers.append(tuple(current_group))
output = ""
for group in grouped_numbers:
group_str = str(group)
if output == "":
output = group_str
else:
output = output + "," + _____⑤ _________
print(output)参考答案
# 从用户输入获取一串数字,以空格分隔
numbers_input = input("请输入一些用空格分隔的数字: ")
# 将输入的字符串按空格分割成多个字符串,再将每个字符串转换为整数
numbers = []
for num_str in numbers_input.split():
numbers.append(int(num_str))
# 用于存储分组结果的列表
grouped_numbers = []
if len(numbers) == 0:
print("你没有输入任何数字。")
else:
# 用来存储当前连续相同数字的列表
current_group = [numbers[0]]
# 从第二个数字开始遍历列表
for i in range(1, len(numbers)):
if numbers[i] == numbers[i - 1]:
# 如果当前数字和前一个数字相同,添加到当前分组
current_group.append(numbers[i])
else:
# 如果不同,将当前分组转换为元组添加到结果列表
grouped_numbers.append(tuple(current_group))
# 开始一个新的分组
current_group = [numbers[i]]
# 处理最后一个分组
grouped_numbers.append(tuple(current_group))
# 将分组后的元组转换为字符串形式输出
output = ""
for group in grouped_numbers:
group_str = str(group)
if output == "":
output = group_str
else:
output = output + "," + group_str
print(output)答案解析
评分标准:
(1)in(或等效答案);(2分)
(2)0(或等效答案); (2分)
(3)i-1(或等效答案);(2分)
(4)current_group(或等效答案);(2分)
(5)group_str(或等效答案)。 (2分)
上一题
下一题