ylhhh 发表于 2022-3-17 13:17:07

列表元素循环右移一位

【问题描述】

       以下列表里所有元素循环右移一位。请补充函数体。

【输入形式】

       输入列表的元素,以逗号隔开
【输出形式】

      循环右移一位后的列表

【样例输入】

      1,2,3,4,5
【样例输出】

      ['5', '1', '2', '3', '4']
【样例说明】

      因为样例是通过键盘输入的,所有元素均为字符串形式。

qq1151985918 发表于 2022-3-17 13:26:08

func = lambda x: x[-1:] + x[:-1]

if __name__ == "__main__":
    data = input().split(",")
    print(func(data))

isdkz 发表于 2022-3-17 13:27:06

本帖最后由 isdkz 于 2022-3-17 13:28 编辑

arr = input().split(',')
print(arr[-1:] + arr[:-1])


ylhhh 发表于 2022-3-17 13:55:08

isdkz 发表于 2022-3-17 13:27


大佬可以帮我看看为什么不对吗
defshift(lst):
    lst = lst[-1:] + lst[:-1]


list1=input().split(",")#输入格式1,2,3,4,5
shift(list1)
print(list1)

qq1151985918 发表于 2022-3-17 14:48:36

ylhhh 发表于 2022-3-17 13:55
大佬可以帮我看看为什么不对吗

函数没有返回值,需要加一行 return lst

ylhhh 发表于 2022-3-17 15:25:13

qq1151985918 发表于 2022-3-17 14:48
函数没有返回值,需要加一行 return lst

好像不对,我感觉是拷贝的问题

qq1151985918 发表于 2022-3-17 15:41:13

ylhhh 发表于 2022-3-17 15:25
好像不对,我感觉是拷贝的问题

函数加一行return lst第6行改成list1=shift(list1)

ylhhh 发表于 2022-3-17 23:09:27

qq1151985918 发表于 2022-3-17 15:41
函数加一行return lst第6行改成list1=shift(list1)

第六行改不了,是题目的

qq1151985918 发表于 2022-3-18 09:27:08

ylhhh 发表于 2022-3-17 23:09
第六行改不了,是题目的

def shift(lst):
    x = lst.pop()
    lst.insert(0, x)

list1 = input().split(",")#输入格式1,2,3,4,5
shift(list1)
print(list1)

sls111 发表于 2022-3-18 09:33:49

作为一个新手 我觉得就是函数没有返回值的问题

ylhhh 发表于 2022-3-18 11:09:05

qq1151985918 发表于 2022-3-18 09:27
def shift(lst):
    x = lst.pop()
    lst.insert(0, x)


这样可以,谢谢大佬了
页: [1]
查看完整版本: 列表元素循环右移一位