Python的问题回答

定义一个函数,将n个数前半部分和后半部分互换。n为奇数时,中间的数不移动,示例运行结果如下。
请输入多个数据:1,2,3,4,5
对换后:
45312
提示:1、定义函数:
首先利用运算符//找到中间位置;此中间
位置的作用有两个,一是需要互换的次数,可以结合range()函数构造循环,控制互换次数。二是参与下标定位互换的数据。
利用if语句,判断n是偶数还是奇数,因为这两种情况下,需要交换的数据下标不一样,需要分别处理。2、将输入的多个数据作为列表赋值给变量,之前定义的函数将接受列表作为参数。
3、调用函数完成互换
4、用for循环输出互换后的列表中的数据即可。
用Python

  • 帮你找了个相似的问题, 你可以看下: https://ask.csdn.net/questions/7416623
  • 以下回答由chatgpt基于相关博客总结生成:
    def swap_list(input_list):
        length = len(input_list)
        if length % 2 == 0:
            # 如果列表长度为偶数,直接前半部分和后半部分互换
            for i in range(length//2):
                input_list[i], input_list[i+length//2] = input_list[i+length//2], input_list[i]
        else:
            # 如果列表长度为奇数,中间的数不动,前半部分和后半部分互换
            for i in range(length//2):
                input_list[i], input_list[i+length//2+1] = input_list[i+length//2+1], input_list[i]
        #输出互换后的列表中的数据
        for i in input_list:
            print(i, end='')
    
    #测试代码
    test_list = [1, 2, 3, 4, 5]
    swap_list(test_list)
    
lst=eval('['+input()+']')
print(lst[::-1])

不用来回交换数据吧,直接切片不就行了吗

lst = [1, 2, 3, 4, 5]
def newsort(lst):
    m = len(lst) // 2    
    front_half = lst[0:m:1]    
    back_half = lst[-m::1]    
    if len(lst) % 2 == 1:
        mid_num = lst[m]        
        back_half.append(mid_num)        
    back_half.extend(front_half)
    return back_half
print(newsort(lst))