【问题标题】:If statements with tuples and removing tuples from list带有元组并从列表中删除元组的 If 语句
【发布时间】:2019-01-23 16:44:32
【问题描述】:

我正在尝试检查某些类型的元组的元组列表。我以为 _ 运算符会在这里工作,但它不起作用。我想我可以遍历列表并手动检查,但我觉得有一种解决这个问题的 Pythonic 方法。 之后,我想删除所有在第一个位置有 (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

【问题讨论】:

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


    【解决方案1】:

    _ 只是一个常规变量名,而不是通配符或运算符,尽管按照惯例,它用于保存无用的值。

    要检查任何元组的第一项是否为 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]
    

    【讨论】:

      猜你喜欢
      • 2021-02-18
      • 1970-01-01
      • 2017-09-21
      • 1970-01-01
      • 1970-01-01
      • 2016-05-09
      • 1970-01-01
      相关资源
      最近更新 更多