使用python从匹配的id中删除列表中的所有元素

时间:2018-02-01 12:10:40

标签: python

我有一个python列表,其中包含用户ID,团队ID和活动ID,如下所示 实际上这些是使用游标从mysql数据库中提取并转换为列表的记录

((18459L, 1152L, 9494L), (9097L, 580L, 6243L), (14641L, 580L, 9394L))

(18459L,1152L,9494L)是一个元素,假设我要从列表中删除具有用户标识值18459L的所有元素如何执行此类删除操作的任何想法建议相同。

2 个答案:

答案 0 :(得分:0)

您可以使用简单的列表理解

A = ((18459L, 1152L, 9494L), (9097L, 580L, 6243L), (14641L, 580L, 9394L))
print tuple([i for i in A if i[0] != 18459L])

输出:

((9097L, 580L, 6243L), (14641L, 580L, 9394L))

如果要删除多个用户,请使用以下代码段:

toRemove = [18459L, 18451L, 18452L]
A = ((18459L, 1152L, 9494L), (9097L, 580L, 6243L), (14641L, 580L, 9394L), (18451L, 1152L, 9494L), (18452L, 1152L, 9494L))
print tuple([i for i in A if i[0] not in toRemove])

答案 1 :(得分:0)

您也可以使用filter()执行此操作:

>>> lst = (('18459L', '1152L', '9494L'), ('9097L', '580L', '6243L'), ('14641L', '580L', '9394L'))
>>> tuple(filter(lambda x: x[0] != '18459L', lst))
(('9097L', '580L', '6243L'), ('14641L', '580L', '9394L'))