Проверьте, существует ли значение свойства класса в списке объектов

У меня есть класс с двумя свойствами:

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

Я создаю список с ButtonPress объектами внутри них:

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

Как я могу проверить, имеет ли какой-либо из объектов в списке определенное значение time? Я пытаюсь:

if "25" in buttonlist[:]['time']
    print("yaaay")
else:
    print("feck")

Но это не работает.


person lte__    schedule 07.10.2019    source источник
comment
Начните с более простого вопроса: как бы вы проверили, имеет ли некоторый отдельный ButtonPress объект b время "25"?   -  person chepner    schedule 07.10.2019
comment
У вас много событий ButtonPress? Может ли такое событие произойти дважды за один раз?   -  person balderman    schedule 07.10.2019


Ответы (1)


Используйте любой:

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")

Вывод

yaaay

Альтернативой использованию in является следующее:

if "25" in (button.time for button in buttonlist):
person Dani Mesejo    schedule 07.10.2019