我有一个数字列表,其中第一个数字附加到一个新列表中,然后是最后一个,然后是第二个,然后是倒数第二个,依此类推



以下是我的代码:

def alt_ele():
    mylist=list(input("Enter the elements: "))
    newlist=[int(i) for i in mylist]
    final_list=[]
    try:
        for x in range(len(newlist)):
            final_list.append(newlist.pop(0))
            final_list.append(newlist.pop())
            print(final_list)
    except IndexError:
        pass

现在我给出的输入是:

I/N:输入元素:12345
我想要的输出是[1,5,2,4,3]
但我实际得到的输出是:

[1,5]
[1,5,2,4]

谁能帮我找出我哪里出了问题?我试过了,但是,我自己无法弄清楚提前谢谢。

print语句需要在 try/except 子句之后:

def alt_ele():
    mylist=list(input("Enter the elements: "))
    newlist=[int(i) for i in mylist]
    final_list=[]
    try:
        for x in range(len(newlist)):
            final_list.append(newlist.pop(0))
            final_list.append(newlist.pop())
    except IndexError:
        pass
    print(final_list)

有了这个,我们得到了所需的输出。

我不认为这是最好的解决方案,所以这里有一种方法可以避免try/except子句:

def alt_ele():
    mylist=list(input("Enter the elements: "))
    newlist=[int(i) for i in mylist]
    final_list=[]
    switch = False
    while newlist:
        final_list.append(newlist.pop(-switch))
        switch = not switch
    print(final_list)

您当前正在循环的每次迭代中打印列表。小心缩进。

它应该是:

for x in range(len(newlist)):
    final_list.append(newlist.pop(0))
    final_list.append(newlist.pop())
print(final_list)

相关内容

最新更新