1

可能是一些非常简单的事情,但我遇到了一些真正的麻烦。我有一个这样的列表:

[[1, 2500],[3,4319],[8,3292],[3,34590]]

其中每个嵌套列表中的第一个值是某种分数,第二个值是该分数对应的用户 ID。

我正在尝试对列表进行一些简单的算术运算,以删除第二个列表中的所有用户 ID。但是,我发现我不能只处理每个嵌套列表的第二个元素。

newlist = list(set(oldlist[][1]) - set(to_be_removed))

我是想用括号变得太有创意,还是我只是错过了一些非常简单的东西?

4

2 回答 2

2

使用列表理解将是这里最简单的解决方案:

new_list = [x for x in old_list if x[1] not in to_be_removed]
于 2012-06-19T20:12:42.410 回答
1

像这样的东西?

old_list = [[1, 2500],[3,4319],[8,3292],[3,34590]]
removals = set([2500, 34590])
new_list = [[x, y] for x, y in old_list if y not in removals]
于 2012-06-19T20:14:31.080 回答