【发布时间】:2021-11-27 10:28:08
【问题描述】:
我正在做 Codewars,却被这个简单的问题困住了。问题是:
你在这个 kata 中的目标是实现一个差异函数,它从列表中减去一个列表 另一个并返回结果。 它应该从列表 a 中删除所有值,这些值存在于列表 b 中,并保持它们的顺序。 如果 b 中存在一个值,则必须从另一个中删除所有出现的值。
这是我尝试过的:
def array_diff(a, b):
if a == []: return b
if b == []: return a
for occurrence in b:
if occurrence in a:
a.remove(occurrence)
return a
由于某种原因,我得到了 2 次失败的测试,这些失败的测试的要求是:
a was [1,2,2], b was [2], expected [1]: [1, 2] should equal [1]
a was [], b was [1,2], expected []: [1, 2] should equal []
任何人都可以帮助我并在可能的情况下解释一下吗?任何帮助表示赞赏。 编辑:我的借口是我是 Python 的初学者,所以如果这个问题有非常明显的错误/错误,对不起
【问题讨论】:
-
一个简单的
return [value for value in a if value not in b]不够吗? -
请不要编辑您的问题以包含答案,如果您愿意,您可以回答自己的问题。或者,如果 picchiolu 的答案对您有用,那么您可以接受它(小绿色复选标记)。
-
啊好的,谢谢你的建议。还要感谢马蒂亚斯的回答。它有效,而且比我的代码更干净
标签: python arrays multiple-occurrence