相关疑难解决方法(0)

Python,计算列表差异

在Python中,计算两个列表之间差异的最佳方法是什么?

A = [1,2,3,4]
B = [2,5]

A - B = [1,3,4]
B - A = [5]
Run Code Online (Sandbox Code Playgroud)

python list

179
推荐指数
10
解决办法
21万
查看次数

创建保留重复值的列表的补充

给定列表a = [1, 2, 2, 3]及其子列表b = [1, 2]找到一个以这样的方式补充b的列表sorted(a) == sorted(b + complement).在上面的例子中,complement将是一个列表[2, 3].

使用列表理解是很诱人的:

complement = [x for x in a if x not in b]
Run Code Online (Sandbox Code Playgroud)

或套装:

complement = list(set(a) - set(b))
Run Code Online (Sandbox Code Playgroud)

但是,这两种方式都会回归complement = [3].

一个显而易见的方法是:

complement = a[:]
for element in b:
    complement.remove(element)
Run Code Online (Sandbox Code Playgroud)

但这感觉非常不满意,而且不是非常Pythonic.我错过了一个明显的习语还是这样?

正如下面指出的那样,性能O(n^2)是否有更有效的方法?

python list

15
推荐指数
2
解决办法
1454
查看次数

两个列表的补充?

假设我有一个字符串列表:

A B C D

然后是另一个字符串列表

B,C,d

我想知道第一个列表中哪些元素不在第二个列表中,因此结果将是A.

我不知道扩展方法的名称是这样做的.我知道我可以使用concat,union,intersect进行类似的列表比较,但只是不知道完成这个特定任务的名称.

附录,我对重复项感兴趣,所以如果第一个列表是:

A,A,A,B,C,d

第二个清单是

B,C,d

我想得到

A,A,A

谢谢!

c# extension-methods

6
推荐指数
1
解决办法
2328
查看次数

标签 统计

list ×2

python ×2

c# ×1

extension-methods ×1