数组元素循环右移代码疑问:运行正常却未通过任务审核
循环右移数组代码逻辑正确但未通过任务的原因
题目要求
从键盘输入一个整数列表,编写程序将数组所有元素循环右移一位(最后一个元素移至列表开头)。
- 输入说明:第一行输入元素个数,后续每行输入一个列表元素。
- 输出说明:输出移位后的列表,元素以空格分隔。
- 示例输入:
6 8 12 3 4 5 1
- 示例输出:
1 8 12 3 4 5
你的代码
h = [] k = int(input()) for i in range(k): o = int(input()) h.append(o) h = h[len(h) - 1:] + h[:len(h)-1] print(h)
问题所在
你的代码循环右移的逻辑完全正确,但输出格式不符合题目要求。当前代码执行print(h)会输出Python列表的默认字符串形式,比如示例输入下会输出[1, 8, 12, 3, 4, 5],而题目要求的是元素用空格直接分隔、无方括号和逗号的格式。
修正方案
把最后一行的print(h)替换为:
print(' '.join(map(str, h)))
这段代码会将列表中的每个整数转为字符串,再用空格连接成一个整体字符串,输出结果就完全符合题目示例的格式要求了。
内容的提问来源于stack exchange,提问作者obibe
相关产品推荐
相关产品推荐

