我不确定为什么在测试此功能时出现错误,指出索引超出范围。有人可以帮我解决这个问题吗?
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
答案 0 :(得分:3)
使用列表理解:
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
答案 1 :(得分:1)
或布尔和:
list(set(L1) & set(L2))