测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

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分)

上一题 下一题