如果语句包含元组并从列表中删除元组

时间:2019-01-23 16:44:33

标签: python python-2.7 list if-statement tuples

我正在尝试检查某些类型的元组的元组列表。我以为_运算符可以在这里工作,但是不起作用。我想我可以遍历列表并手动检查,但是我觉得有解决此问题的有效方法。 之后,我想删除所有在第一个位置具有(1,)的元组。对于删除过程,我会尝试使用过滤器。

self.bids = [(1,1),(1,2),(1,3),(2,0),(3,1),(3,2)] 
if (1,_) in bids or (2,_) in bids or (3,_) in bids:
                possibleModes.remove((1,_))
                return possibleModes

1 个答案:

答案 0 :(得分:3)

_只是一个常规变量名,而不是通配符或运算符,尽管习惯上它用来保存无效值。

要检查是否有任何元组以1、2或3为第一项,可以将any函数与生成器表达式一起使用,并删除以1为第一项的所有元组,可以使用这样的列表理解:

if any(a in (1, 2, 3) for a, _ in self.bids):
    return [(a, b) for a, b in self.bids if a != 1]