“ IndexError:交换列表中的元素时超出列表索引]

问题描述 投票:0回答:3

我必须编写一个执行以下操作的功能'swaplist':

在输入2列表中给出:

列表1,列表2

例如:

[s4,s6]

[4,2,3,6,5]

*请紧记[s5]不能输入

返回一个列表,其中4与下一个数字交换,6与下一个数字交换

[2,4,3,5,6]

这是我写的代码:

def swaplist(list1,list2):
    list3=list2
    for i in list3:
        if ('s'+str(i)) in list1:
            a=list3.index(i)
            b=a+1
            list3[a],list3[b]=list3[b],list3[a]
    return list3

我尝试运行此代码,但出现以下错误:

IndexError: list index out of range

有人知道如何解决此问题吗?

谢谢你们的时间

  • 对不起,我英语不好了>>

我必须编写一个函数'swaplist',该函数执行以下操作:在输入2中给出列表:list1,list2,例如:[s4,s6] [4,2,3,6,5] *请紧记[s5无法在输入中给出],返回列表在...

python list indexing index-error
3个回答
1
投票

您正在遍历列表时修改列表,这将导致不必要的行为。


0
投票

如JohanC所述,问题是您更改了循环的列表。您可以先复制list2,然后再更改list3。


0
投票

这看起来像是一个作业问题。

© www.soinside.com 2019 - 2024. All rights reserved.