我知道这个问题以前已经讨论过了,我知道这是一个新手和简单的问题,但出于某种原因,我不能把我的头围绕着代码,将需要这样做。下面是我需要的一个实际例子:
假设我有一个tumblr帐户,我跟踪5个人,其中3个人跟踪我。你知道吗
iFollow = [Tom, Richard, Bob, Samantha, Kat]
followsMe = [Samantha, Kat, Bob]
现在,我想放开我跟随的人,但是不要跟着我回去。 所以在这个例子中,我想把汤姆和理查德放在后面,因为即使我跟着他们,他们也不跟着我。我想创建一个列表:
unfollowThese = [Tom, Richard]
我一辈子都想不出怎么做。我知道有交集,找到共同的元素,这将输出“Bob”,似乎我想要相反的,我想要从我想要的新列表中删除两个列表中共同的元素。你知道吗
也就是说,我希望iFollow和followsMe中常见的元素从unfollowsethes中删除,因为我不想取消follow我的追随者。你知道吗
谢谢。你知道吗
另外,如果你能想出一个更好的标题,请改一下,我想不出什么叫它。。你知道吗
最简单的方法是使用set difference:
如果
followsMe
很大的话,这应该比列表理解更快——它是线性平均时间复杂度,长度为followsMe
的O(n),而不是两个长度都是线性的,所以O(n*k)。你知道吗为了完整起见,请注意,您可以使用
set
来加快“order matters”版本的运行速度,以便将实时性也线性化:因为
set
成员资格测试是恒定的平均时间。你知道吗如果顺序重要,则使用list comprehensions:
如果项目顺序无关紧要,则使用^{} :
相关问题 更多 >
编程相关推荐