以下是我的代码:
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]
任何人都可以帮我弄清楚我哪里出错了?我试过了,但我自己也搞不清楚了 提前谢谢。
答案 0 :(得分:2)
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)
答案 1 :(得分:1)
您当前正在循环的每次迭代中打印列表。小心缩进。
应该是:
for x in range(len(newlist)):
final_list.append(newlist.pop(0))
final_list.append(newlist.pop())
print(final_list)