检查对象列表中是否存在类属性值

lte*_*e__ 0 python attributes class any

我有一个有 2 个属性的类:

class ButtonPress():
    def __init__(self, time, button):
        self.time = time
        self.button = button
Run Code Online (Sandbox Code Playgroud)

我创建一个列表,ButtonPress其中包含对象:

buttonlist = []
buttonlist.append(ButtonPress("25", "a")
buttonlist.append(ButtonPress("5", "b"))
Run Code Online (Sandbox Code Playgroud)

如何检查列表中的任何对象是否具有特定time值?我想:

if "25" in buttonlist[:]['time']
    print("yaaay")
else:
    print("feck")
Run Code Online (Sandbox Code Playgroud)

但这是行不通的。

Dan*_*ejo 6

使用任何

class ButtonPress():
    def __init__(self, time, button):
        self.time = time
        self.button = button

buttonlist = []
buttonlist.append(ButtonPress("25", "a"))
buttonlist.append(ButtonPress("5", "b"))

if any(button.time == "25" for button in buttonlist):
    print("yaaay")
else:
    print("feck")
Run Code Online (Sandbox Code Playgroud)

输出

yaaay
Run Code Online (Sandbox Code Playgroud)

另一种使用方法in如下:

if "25" in (button.time for button in buttonlist):
Run Code Online (Sandbox Code Playgroud)