我正试图通过Python的必读练习来提高自己的水平,但这一次一直让我感到困惑。我的逻辑对我来说是非常有意义的,但在某些地方,它总是在列表上抛出一个超出界限的错误。
以下是问题所在
编写一个函数( list1,list2),它接受两个列表作为参数,并返回一个列表,该列表是从list1中删除可以在list2中找到的元素的结果。
示例
ubtractList
subtractList (范围(5),范围( 4) )4 subtractList( 1,2,3,4,5,2,4)1,3,5 subtractList ('a','b','c','d','x','y','z') 'a','b','c','d‘’
这是我到目前为止所拥有的
def subtractList(list1, list2):
if len(list1) > 0:
for i in range(len(list1)):
for p in range(len(list2)):
if list1[i] == list2[p]:
list1.remove(list1[i])
return list1发布于 2014-05-26 06:20:25
发布于 2014-05-26 06:26:34
因此,对于完成所需内容的方法,有很多注释/答案,我将向您展示为什么您要在代码中得到错误。
您在这里变异list1:
list1.remove(list1[i])同时,range(len(list1))来自:
for i in range(len(list1)):保持相同的列表,从一开始就有list1的长度。
https://stackoverflow.com/questions/23863683
复制相似问题