繁体   English   中英

从列表中删除对象

[英]Removing objects from lists

我不确定为什么在测试此功能时为什么会出现错误,指出索引超出范围。 谁能帮我解决这个问题?

def intersect_lists(L1, L2):
'''(list, list) -> list
Return L1 with items not in L2 removed.
>>> intersect_lists([1, 2, 3, 4, 5, 6], [4, 2, 6])
[2,4,6]
'''
new_list = []

for item in range(len(L1)):
    if L1[item] == L2[item]:
        new_list.append(L1[item])
return new_list

使用清单理解:

def intersect_lists(L1, L2):
   return [i for i in L1 if i in L2]

但是,特定的错误是由您在L1的长度上进行迭代这一事实引起的,因为L1的长度大于L2,所以最终将导致索引错误。

没有列表理解:

def intersect_lists(L1, L2):
   final_list = []
   for i in L1:
      if i in L2:
         final_list.append(i)

   return final_list

或布尔与:

list(set(L1) & set(L2))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM