删除Python列表中具有相同条目的压缩对

时间:2017-02-07 02:39:38

标签: python list zip

我有一个压缩对的列表(例如A)

link B

我可以删除第一个和第二个条目彼此相等的所有对的最佳方式(并创建一个新列表)?

在上面的例子中( A ),我想删除的对是(0,0)(1,1)(2,2)。在这个例子中,我希望新列表看起来像这样。

A = [(0, 0), (0, 1), (0, 6), (0, 7), (1, 3), (1, 1), (2, 2)]

3 个答案:

答案 0 :(得分:4)

你可以使用简单的列表理解和if子句,为你想要保留的所有不等对返回True

>>> A = [(0, 0), (0, 1), (0, 6), (0, 7), (1, 3), (1, 1), (2, 2)]
>>> [(x, y) for x, y in A if x != y]
[(0, 1), (0, 6), (0, 7), (1, 3)]

答案 1 :(得分:1)

使用filter,它将一个判断函数作为第一个参数来告诉要保留哪个元素,将可迭代列表作为第二个参数,lambda定义一个匿名函数。

A_new = filter(lambda x: x[0] != x[1], A)

答案 2 :(得分:1)

您可以使用void Start(){ StartCoroutine (Test()); } void Update(){ print ("in update"); }

执行此操作
list comprehension

输出:

a = [(0, 0), (0, 1), (0, 6), (0, 7), (1, 3), (1, 1), (2, 2)]
final = [k for k in a if k[0] != k[1]]