You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

列表交替元素交换逻辑存疑:我与朋友谁的思路正确?

问题:判断哪种逻辑符合列表交替元素交换的题目要求

定义函数SWAP(SCORES),交换列表SCORES中的所有交替元素。
示例:若SCORES为[200, 456, 300, 100, 234, 678],输出应为[300, 200, 100, 456, 678, 234]。

该排列模式较为特殊,例如输入列表[1,2,3,4,5,6]时,预期结果为[3,1,4,2,6,5]。

while True:
    l=eval(input('List: '))
    x=len(l)
    n=x//4
    t=4*n
    l1=l[:t]
    print(l1)
    l2=l[t:]
    print(l2)
    for i in range((len(l1)//2)):
        l1[i],l1[i+2]=l1[i+2],l1[i]
        #l1 shuffling over
    if len(l2)==1:
        l1+=l2
        print('Shuffled list:',l1)
    elif len(l2)>=2:
        l2=l2[::-1]
        l1+=l2
        print('Shuffled list:',l1)
    elif len(l2)==0:
        print('Shuffled list:',l1)
        #treating l2 separately

这是我编写的代码,测试后运行效果如下:

================================== RESTART: C:/Users/Harikrishnan/OneDrive/Desktop/peculiar shuffling q.py ==================================
List: [200,456,300,100,234,678]
[200, 456, 300, 100]
[234, 678]
Shuffled list: [300, 100, 200, 456, 678, 234]
List: [1,2,3,4]
[1, 2, 3, 4]
[]
Shuffled list: [3, 4, 1, 2]
List: [1,2,3,4,5]
[1, 2, 3, 4]
[5]
Shuffled list: [3, 4, 1, 2, 5]
List: [1,2,3,4,5,6,7]
[1, 2, 3, 4]
[5, 6, 7]
Shuffled list: [3, 4, 1, 2, 7, 6, 5]
List: [1,2,3,4,5,6,7,8]
[1, 2, 3, 4, 5, 6, 7, 8]
[]
Shuffled list: [3, 4, 5, 6, 1, 2, 7, 8]
List: 
Traceback (most recent call last):
  File "C:/Users/Harikrishnan/OneDrive/Desktop/peculiar shuffling q.py", line 2, in <module>
    l=eval(input('List: '))
KeyboardInterrupt

我的逻辑是:处理列表的前4n个元素,交换奇数位置和对应后两位的元素、偶数位置和对应后两位的元素;剩余元素分为四种情况处理:无剩余、剩1个、剩2个、剩3个。


我的朋友提出另一种逻辑:

我认为规律是最后两个元素交换,倒数第3个与倒数第5个交换,倒数第4个与倒数第6个交换,倒数第7个与倒数第10个交换,倒数第8个与倒数第11个交换,倒数第9个与倒数第12个交换

我现在感到困惑,想请教:我与朋友谁的逻辑符合题目要求?

内容的提问来源于stack exchange,提问作者Harikrishnan M

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 10:17:15