【发布时间】:2021-05-27 06:36:39
【问题描述】:
我正在尝试编写一个从列表中减去列表的代码。
例如:
list1 = ['hi', 'hi', 'once', 'twice']
list2 = ['hi', 'once', 'twice']
减去我想要的列表的结果是:
differenceoflists = ['hi']
目前,我正在使用代码
list1 = ['hi', 'hi', 'once', 'twice']
list2 = ['hi', 'once', 'twice']
differenceoflists = []
for i in list1:
if i not in list2:
differenceoflists.append(i)
print(differenceoflists)
但是,此代码无法按我希望的方式运行。当我希望它返回['hi'] 时,它会返回一个空列表。我怎样才能正确地做到这一点?
【问题讨论】:
-
但是
'hi'在list2中,所以它不能在differenceoflists中。为什么会这样? -
嗯,list1 中有两个 hi,list2 中只有一个,所以我希望代码计算 list1 中的额外 hi。
-
它返回一个空列表,因为
list2中的同一个 'hi'被匹配了两次。根据您的性能和输出限制,您可能可以使用您的想法,除了使用 list2 的 副本 工作,并在将它们添加到differenceoflists时使用.remove(item)从 list2 中删除内容.